UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR...

95
Pierre Emmanuel CARLIER Damien DE SOUZA Damien DUMAY Germain FONDEUR Thomas MONTJALON Sylvain RODRIGUES Guillaume TRANNOY UV PR REALISATION DE LA BASE ROULANTE DU ROBOT DE LA COUPE E=M6 ASSOCIATION COUPE E=M6 Suiveurs Projet : FORGEZ Christophe

Transcript of UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR...

Page 1: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

Pierre Emmanuel CARLIERDamien DE SOUZADamien DUMAYGermain FONDEURThomas MONTJALONSylvain RODRIGUESGuillaume TRANNOY

UV PR

REALISATION DE LA BASE ROULANTE DU ROBOT

DE LA COUPE E=M6

ASSOCIATION COUPE E=M6

Suiveurs Projet

FORGEZ Christophe

LANFRANCHI Vincent Automne 2004

UV PR Reacutealisation drsquoune base roulanteA04

SommairePREacuteSENTATION page 3

1 La coupe E=M6 page 32 Cahier des charges de lrsquoUV PR page 43 Lrsquoeacutequipe chargeacutee de lrsquoUV PR page 5

PARTIE A DESCRIPTION GEacuteNEacuteRALE DE LA BASE ROULANTE page 6

PARTIE B LA MEacuteCANIQUE page 71 Veille technologique page 72 Le choix des moteurs page 83 Les supports moteurs page 134 Les roues page 175 La base page 186 Reacutesultats page 21

PARTIE C LrsquoEacuteLECTRONIQUE page 231 Les batteries page 232 La commande des moteurs page 263 Systegraveme PID page 274 Les microcontrocircleurs page 355 Module AVR page 376 Modules drsquoasservissement analogique laquo Escap raquo page 387 Conclusion page 428 Carte drsquoasservissement numeacuterique laquo artisanale raquo page 429 Carte compteur drsquoimpulsions codeurs page 4310 Carte de puissance page 4411 Carte microcontrocircleur page 4512 Algorithme page 4913 Conclusion page 5014 Remarques page 5015 Circuits drsquoasservissement numeacuterique laquo LM629 raquo page 5116 Conclusion page 5317 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo page 5318 Conclusion page 5819 La carte megravere page 59

PARTIE 4 DIVERS page 611 Budget page 612 Fournisseurs page 623 Usinages page 63

Page 3

UV PR Reacutealisation drsquoune base roulanteA04

CONCLUSION page 64REMERCIEMENTS page 64

ANNEXES page 65

Page 4

UV PR Reacutealisation drsquoune base roulanteA04

Preacutesentation1 La coupe E=M6

La Coupe de France de Robotique est une compeacutetition au cours de laquelle viennent srsquoaffronter les grandes eacutecoles et universiteacutes franccedilaises Elle est organiseacutee par la chaicircne de teacuteleacutevision nationale M6 et lrsquoAssociation Planegravete Sciences Cette compeacutetition se deacuteroule chaque anneacutee au mois de mai sur le site de la Ferteacute Bernard agrave lrsquooccasion du festival laquo Arts et Technologie raquo plus connu sous le nom de ARTEC

Le deacutefi proposeacute par la Coupe consiste agrave concevoir et fabriquer un robot mobile totalement autonome agrave partir drsquoun sujet imposeacute par les organisateurs de la coupe et preacutesenteacute au mois de septembre

LrsquoUTC participe agrave cette compeacutetition depuis 1996 ougrave un groupe drsquoeacutetudiants motiveacutes srsquoeacutetait constitueacute de lui-mecircme pour participer agrave ce challengeAujourdrsquohui notre force est de profiter de lrsquoenseignement des anciens participants et du savoir-faire acquis

Lrsquoensemble des personnes impliqueacutees est vraiment deacutetermineacute agrave atteindre des objectifs preacutecis ameacuteliorer nos performances et eacuteliminer nos faiblesses deacutejagrave pour acceacuteder agrave la phase finale et peut-ecirctre remporter la victoire Il y a aussi la volonteacute de repreacutesenter notre eacutecole dans une compeacutetition dont les retombeacutees meacutediatiques sont de plus en plus importantes et de la faire jouer dans la mecircme cour que les plus ceacutelegravebres eacutecoles franccedilaises Par ailleurs notre eacutequipe srsquoest classeacutee 12egraveme en 2002 (sur 190 eacutequipes seacutelectionneacutees) lrsquoexpeacuterience des participations preacuteceacutedentes ayant eacuteteacute systeacutematiquement mise agrave profit

Cette activiteacute inclut eacutegalement un aspect formateur agrave ne pas neacutegliger Pour mener agrave bien ce projet il est neacutecessaire de faire les meilleurs choix dans les deacutelais les plus brefs de reacuteagir vite et de travailler efficacement Par ailleurs ce projet possegravede un aspect pratique important pour des eacutetudiants ayant des connaissances plutocirct theacuteoriques laquo mettre la main agrave la pacircte raquo permet drsquoapprendre ce qursquoimplique drsquoavoir agrave commander une piegravece ou de la fabriquer drsquoutiliser un tournevis de tenir un fer agrave souder parcourir une documentation ou encore de deacuteceler lorigine dune panne

De plus ce challenge technique et humain nous permet drsquoune part de mettre en pratique nos connaissances scientifiques agrave travers une reacutealisation concregravete et drsquoautre part drsquoacqueacuterir une certaine expeacuterience dans le travail en eacutequipe affilieacute agrave un projet complet au travers de toutes les disciplines impliqueacutees (management comptabiliteacute communication strateacutegies meacutecanique eacutelectronique informatiquehellip)

Page 5

UV PR Reacutealisation drsquoune base roulanteA04

2 La Coupe de France de Robotique 2005

Cette anneacutee les robots jouent au bowling

Chaque eacutequipe doit construire un ou deux robots entiegraverement autonomes Les matchs se jouent entre deux eacutequipes et durent 1 minute 30

Une couleur de quilles est attribueacutee agrave chaque eacutequipe Sur le terrain 15 quilles de chaque couleur sont disposeacutees aleacuteatoirement Au deacutepart celles-ci se trouvent de lrsquoautre cocircteacute drsquoun fosseacute dans le camp adverse Des ponts permettent de rejoindre lrsquoautre cocircteacute mais ceux-ci sont placeacutes aleacuteatoirement en deacutebut de partie Il est eacutegalement possible drsquoutiliser des balles de type laquo balle de squash raquo pour faire du tir balistique et ainsi espeacuterer faire tomber des quilles agrave distance

Pour gagner la partie les robots doivent renverser le plus de quilles possible Les robots peuvent aussi relever les quilles de la couleur adverse renverseacutees par lrsquoautre eacutequipe

Lrsquoeacutequipe qui a le plus de quilles de sa couleur renverseacutees en fin de match est deacuteclareacutee vainqueur

Illustration de la zone de jeu 2005

Page 6

UV PR Reacutealisation drsquoune base roulanteA04

3 Cahier des charges de lrsquoUV PR

Chaque anneacutee les strateacutegies de locomotions des robots se ressemblent cependant nous partons agrave chaque fois de zeacutero

Crsquoest pourquoi il nous a sembleacute utile drsquoessayer de construire une fois pour toute une base roulante reacuteutilisable et fiable

Nous nous sommes fixeacute comme objectifs principaux

De reacutealiser une base roulante bull Facilement reacuteutilisablebull Fiable

Commandable bull En vitessebull En distancebull En rotation

Caracteacuteristiques bull Pouvant supporter 15kgbull Ne faisant pas plus de 260 mm de large

4 Lrsquoeacutequipe chargeacutee de lrsquoUV PR

Etudiants CARLIER Pierre Emmanuel GM02DE SOUZA Damien GSM05 - CMIDUMAY Damien GM02FONDEUR Germain GM05 - MARSMONTJALON Thomas GI05 - RODRIGUES Sylvain GM05 - MARSTRANNOY Guillaume GM02

Suiveurs Projet

FORGEZ Christophe (laboratoire drsquoeacutelectromeacutecanique de lrsquoUTC)LANFRANCHI Vincent (laboratoire drsquoeacutelectromeacutecanique de lrsquoUTC)

Page 7

UV PR Reacutealisation drsquoune base roulanteA04

Partie A Description geacuteneacuterale de la base roulante

1 Carte megravere

Il srsquoagit de la carte laquo intelligente raquo du robot elle commande le deacuteplacement mais aussi les diffeacuterents actionneurs et capteurs du robot Cette partie correspond agrave

Motorola HCS12 (MC9S12DP256B) Microchip PIC 18F458 Rabbit (RCM3400) PC104 hellip

2 Asservissement

Cette partie correspond au controcircle des actionneurs elle est lrsquointerface entre la carte megravere et les effecteurs Il peut srsquoagir de

Carte de puissance Pont en H Controcircle de vitesse hellip

Page 8

UV PR Reacutealisation drsquoune base roulanteA04

Partie B La meacutecanique 1 Veille technologique

Afin de pouvoir eacuteviter de proposer ou de faire des choses deacutepasseacutees inutiles ou non fiables nous avons proceacutedeacute agrave une petite veille technologique de tout ce qui se fait agrave la Coupe de France de Robotique Pour cela nous nous sommes baseacutes sur le site de lrsquoANSTJ qui est lrsquoassociation qui organise la Coupe de France Sur son site lrsquoANSTJ a recenseacute tous les posters des eacutequipes de la compeacutetition de 2004 Ces posters sont des documents remis agrave lrsquoorganisation en mai 2004 lors de la derniegravere compeacutetition A partir de ces posters nous avons regardeacute comment les eacutequipes avaient fait leur(s) robot(s)

bull Quel systegraveme de deacuteplacement (roues chenilles pattes) bull Quel type de moteurs bull Comment et ougrave les moteurs eacutetaient placeacutes bull Les accouplements (directs ou indirects) bull La forme des robots bull La modulariteacute du laquo bloc moteur raquo

Toutes ces informations sont recenseacutees dans un tableau Excel Ce document est en annexes

Les principales informations recueillies de cette veille sont

bull La plupart des eacutequipes utilisent une liaison directebull La motorisation se fait par des rouesbull Les roues sont placeacutees agrave lrsquoarriegravere du robotbull Les robots sont de formes rectangulaires ou carreacutees

Il faut preacuteciser que ces informations sont relatives au regraveglement de la compeacutetition de 2004 Ces choix sont donc fortement lieacutes au regraveglement On peut noter que dans le passeacute plus de robot avec transmission agrave renvoi drsquoangle existaient

Deux eacuteleacutements sont donc agrave fortement retenir les chenilles ont quasiment disparu et les robots cylindriques sont en forte voie de disparition

Nous tacirccherons donc drsquoeacuteviter ces deux aspects pour la conception de notre base roulante

Page 9

UV PR Reacutealisation drsquoune base roulanteA04

2 Le choix des moteurs

a Technologies

Le regraveglement de la compeacutetition ne laissant pas de reacuteels choix quant agrave la source drsquoeacutenergie utiliseacutee nous nous sommes directement orienteacutes vers des moteurs eacutelectriques Il existe plusieurs familles de moteurs eacutelectriques

bull Les moteurs Brushlessbull Les moteurs agrave Courant Continubull Les moteurs agrave Courant Alternatifbull Les moteurs Pas agrave PasForts de nos expeacuteriences passeacutees les moteurs Pas agrave Pas on eacuteteacute directement mis de

coteacute agrave cause de leur faibles vitesse de rotation et couple En ce qui concerne les moteurs agrave Courant Alternatif leur mise en œuvre est assez compliqueacutee pour des systegravemes embarqueacutes Nous avons donc le choix entre les moteurs Brushless et les moteurs agrave Courant Continu Nous avons opteacute pour les moteurs agrave Courant Continu car ceux-ci sont plus simples agrave controcircler moins coucircteux et mieux connus que les Brushless

b Dimensionnement

Le cahier des charges nous impose les caracteacuteristiques suivantes

- Diamegravetre des roues 8cm- Poids du robot 15 kg- Vitesse maximum drsquoentraicircnement 1ms-1 - Acceacuteleacuteration maximum 1ms-2

Lrsquoassociation avait agrave sa disposition 2 motoreacuteducteurs de types AMAX 26G PLG 26 de chez MDPmotor donc le premier objectif eacutetait de veacuterifier si lrsquoon pouvait se servir de ces moteurs pour reacutepondre aux speacutecifications que lrsquoeacutequipe crsquoeacutetait fixeacute

Nous allons donc vous expliquer la deacutemarche que nous avons suivie

On peut repreacutesenter lrsquoaxe moteur comme ci dessous

Moteur

Reacuteducteur

Palier

Roue

eacutecrasement

Page 10

UV PR Reacutealisation drsquoune base roulanteA04

Tout drsquoabord il faut deacuteterminer la force de reacutesistance au roulement celle-ci va deacutependre essentiellement de deux paramegravetres

- force de frottement essieu palier donneacutee par la relation suivante

rff D

dMgF 22

times

times= micro fmicro Coefficient de frottement essieu palier

rD Diamegravetre de la roue

2d

Rayon de lrsquoessieu

- force drsquoeacutecrasement

re D

fMgF 2timestimes=M Masse du robotf Eacutecrasement (00001 m)

Ce qui nous donne lrsquoexpression de la force de reacutesistance au roulement celle-ci devant ecirctre vaincue par le moteur pour mettre le robot en mouvement

+= fdMg

DF f

rres 2

2 micro

A partir de cette force on peut deacuteterminer le couple reacutesistant permanent agrave vaincre

resr

rp FDC times=2

Pour pouvoir appliquer le principe fondamental de la meacutecanique il nous faut deacuteterminer lrsquoinertie de la charge Afin drsquoobtenir ce paramegravetre nous allons consideacuterer qursquoil y a conservation de lrsquoeacutenergie cineacutetique entre le mouvement de rotation (de la roue) et de la translation (du robot) ce qui nous donne

222

221

21

=rArr=Ω r

ccccDMJMVJ

Si lrsquoon ramegravene cette inertie au moteur cela donne

rcmc

rm

ccmc

rmmccc

kJJJJ

JJ

ηη

η

121

21

2

2

2

2

times=hArrΩ

Ωtimes=

Ω=Ωk Rapport de reacuteduction

rη Rendement du reacuteducteurcJ Inertie de la charge

mcJ Inertie rameneacutee au moteur

Page 11

Maintenant nous avons tous les eacuteleacutements pour eacutecrire le principe fondamental de la meacutecanique

mrpmmmtot CCJ minus=γ

Ici compte tenu de notre application pour deacuteterminer le couple moteur neacutecessaire il faut tenir compte du nombre de moteurs

( )[ ]mrpmmcmmoteur

m CJJnb

C 1 ++= γ

Dans lrsquoapplication le nombre de moteurs srsquoeacutelegraveve agrave deux donc si lrsquoon regarde lrsquoexpression du couple moteur pour chaque phase cela donne

- phase drsquoacceacuteleacuteration

mmaccmacc

r

rpa

r

rmaccm

CP

kC

kDMJC

η

ηγ

η

1

122

1

max

2

2

timesΩtimes=

+times

times

+=

- phase de freinage

mmfrmfr

r

rpfr

r

rmfrm

CP

kC

kDMJC

η

ηγ

η

1

122

1

max

2

2

timesΩtimes=

+times

times

+=

- reacutegime permanent

mmpermmperm

r

rppermm

CP

kC

C

η

η1

21

max

timesΩtimes=

=

Maintenant que toutes les relations ont eacuteteacute mises en eacutevidence on peut regarder les reacutesultats que lrsquoon obtient avec le moteur AMAX 26G en gardant agrave lrsquoesprit que pour lapplication on considegravere que les phases drsquoacceacuteleacuteration seront preacutepondeacuterantes crsquoest pourquoi on dimensionnera les moteurs pour les phases drsquoacceacuteleacuterations

Apparemment le moteur aurait pu convenir si le reacuteducteur avait eu un rapport de reacuteduction plus faible En effet le moteur peut deacutelivrer le couple nominal neacutecessaire mais nous ne permet pas drsquoatteindre les vitesses souhaiteacutees Dans un premier temps nous avions revu nos speacutecifications agrave la baisses envisageacute la meilleure faccedilon de commander le moteur de faccedilon agrave ce que lrsquoon deacutemarre toujours en suivant la limite de puissance imposeacutee par le collecteur meacutecanique Ceci nous aurait permis drsquoavoir la meilleure dynamique du moteur La conseacutequence de ce type de fonctionnement aurait eacuteteacute un eacutechauffement excessif et un vieillissement preacutematureacute du moteur Donc les risques de casse auraient eacuteteacute multiplieacutes

Suite agrave un incident durant les phases de tests un des moteurs crsquoest vu endommageacutes crsquoest pourquoi il agrave fallu dimensionner drsquoautres moteursNous avons donc repris nos calculs avec un nouveau rapport de reacuteduction ce qui nous donne les reacutesultats suivants

Nous avons donc rechercheacute un moteur qui aurait pu avoir ses caracteacuteristiques agrave savoir - Couple nominal 34 mNm- Vitesse nominale 3342 trmin- Puissance nominale 16 W- Alimentation 24V- Reacuteducteur 1 14

Ce qui nous donnerait en sortie de reacuteducteur - Couple nominal 033 Nm- Vitesse nominale 239 trmin

Nous avons eu beaucoup de mal agrave trouver un moteur qui reacuteponde agrave ses exigences de maniegravere preacutecise et qui ait des caracteacuteristiques geacuteomeacutetriques compatibles avec les speacutecifications meacutecaniques Ces speacutecifications meacutecaniques eacutetant contraignantes compte tenu de la strateacutegie envisageacutee

Crsquoest pourquoi nous avons seacutelectionneacute un moteur un peu surdimensionneacute pour notre application toutefois cela va dans le bon sens comme nous sommes obligeacutes de mettre un renvoi drsquoangle ce qui va augmenter les pertes et lrsquoinertie Donc ce surdimensionnement devrait palier aux impreacutevus et combler nos neacutegligences

c Choix possibles

Gracircce aux informations qui preacutecegravedent on a pu choisir 3 Reacutefeacuterences bull Un motoreacuteducteur de chez MDP-Motor avec une vitesse en charge de 309 trmin-1 et

un couple de 057 Nm reacutefeacuterence AMAX32GHPPLG42S prix unitaire TTC 310 euro (avec -20 en tant que participant agrave la Coupe) disponibles sous 12 semaines longueur sans arbre de 142 mm

bull Un motoreacuteducteur de chez MDP-Motor avec une vitesse en charge de 559 trmin-1 et un couple de 060 Nm reacutefeacuterence RE035GPLG52 prix unitaire TTC 337 euro (avec -20 en tant que participant agrave la Coupe) disponibles de suite longueur sans arbre de 144 mm

bull Un motoreacuteducteur de chez Faulhaber avec une puissance de 45 W reacutefeacuterences moteur 2657 reacuteducteur seacuterie 26 Rr =14) prix unitaire TTC 507 euro disponibles de suite longueur sans arbre 125 mm

Voir en annexes pour les caracteacuteristiques de ces reacutefeacuterencesAux vues des longueurs obtenues il nous est rapidement apparu qursquoune transmission

directe Motoreacuteducteur Roue nrsquoeacutetait pas envisageable du fait drsquoune longueur totale minimum de (125 + 30) 2 = 310 mm avec 125 la longueur drsquoun motoreacuteducteur 30 la largeur estimeacutee drsquoune roue Nous avons donc opteacute pour une solution agrave renvoi drsquoangle

d Choix deacutefinitif

Gracircce aux caracteacuteristiques preacuteceacutedentes nous avons choisi les RE035GPLG52 du fait de leurs disponibiliteacute caracteacuteristiques et prix En ce qui concerne la transmission par renvoi drsquoangle nous avons opteacute pour des systegravemes deacutejagrave tout fait qui permettent une plus grande preacutecision un meilleur rendement et un meilleur rapport qualiteacute prix que les montages artisanaux Voici la reacutefeacuterence que nous avons retenue

bull Reacutefeacuterence 748-437 chez Radiospares ou B332312 chez HPCeurope avec les caracteacuteristiques suivantes Rr = 1 C max = 068 Nm V max = 1500 trmin-1 η = 094 prix RS 5750 euro piegravece et prix HPC 52 euro piegravece (avec -10 en tant que participant agrave la Coupe) (Voir les autres caracteacuteristiques en annexes)Pour des raisons de disponibiliteacute nous avons commandeacute ces 2 piegraveces chez

Radiospares En ce qui concerne la liaison entre lrsquoarbre moteur et lrsquoarbre de la transmission nous

avons deacutecideacute drsquousiner un accouplement rigide dont les plans se trouvent en annexes Du coteacute moteur le blocage en rotation est assureacute par une vis de pression qui se trouve dans la gorge preacutevue initialement pour la clavette De lrsquoautre coteacute nous avons usineacute un meacuteplat sur lrsquoarbre du reacuteducteur meacuteplat sur lequel vient appuyer une autre vis de pression

3 Les supports des moteurs

A lrsquoorigine nous avions penseacute mettre les moteurs et les roues coaxiaux nous avions donc imagineacute un systegraveme de bride qui permettrait de bloquer le moteur selon 2 axes de translation et 2 axes de rotation gracircce agrave 2 vis de serrage associeacutee agrave une eacutequerre qui permettait le blocage selon le dernier axe de translation et de rotation Le tout eacutetait fixeacute sur une plaque de fond qui constituerait la base du robot

Voici donc a quoi ressembler cette bride (pour un moteur)

Bride de maintien pour moteur de faible longueur

Bride monteacutee sur la plaque de fond avec un moteur

Ensuite lorsque nous sommes passeacutes agrave la solution avec renvoi drsquoangle nous avons deacutecideacute drsquousiner une piegravece certes complexe mais qui proposait une universaliteacute notamment au niveau des diffeacuterentes positions des moteurs (verticale et horizontale) aspect qui satisfait pleinement au cahier des charges Cette piegravece que par la suite nous appellerons Bloc Moteur doit permettre la mise et le maintien en position du motoreacuteducteur la mise et le maintien en position du reacuteducteur la fixation de lrsquoensemble au sein du robot notamment sur la plaque de fond

Apregraves une petite eacutetude nous sommes arriveacutes agrave une piegravece de ce type

Bloc moteur pour la solution avec renvoi dangle

Cette nouvelle piegravece agrave de nombreux avantages

bull Elle nous permet de pouvoir incorporer le renvoi drsquoangle bull De maintenir les piegraveces entre-elles et de limiter les efforts directs sur les

diffeacuterents eacuteleacutementsbull Drsquoecirctre installeacute agrave lrsquohorizontale ou agrave la verticale

Effectivement lors de la conception du bloc moteur nous avons penseacute aux anneacutees futures et nous avons donc preacutevu un montage des moteurs agrave la verticale ou agrave lrsquohorizontale

En position verticale

En position horizontale

4 Les roues

Comme vu lors de la veille technologique les chenilles ont quasiment disparu de la compeacutetition Ceci est ducirc au fait que cette technologie est difficile agrave mettre en œuvre et que les regraveglements proposent des aires de jeux totalement planes

Or cette anneacutee un fosseacute fait son apparition dans le regraveglement Ce fosseacute de 36 mm de profondeur vient seacuteparer deux aires de jeu Une neacutecessiteacute de traverser le fosseacute apparaicirct donc pour aller renverser les quilles de lrsquoadversaire

Deux solutions sont alors possibles bull Traverser sur le pont aleacuteatoirebull Traverser le fosseacute

Si nous choisissons de traverser par le pont lrsquoideacutee de garder notre systegraveme de roues est correcte par contre un systegraveme agrave chenille permettrait de passer par le fosseacute

Apregraves reacuteflexion de lrsquoeacutequipe PR et des membres de la Coupe E=M6 la solution de traverser par le pont est retenue Ce qui nous a conduit tout droit vers la solution agrave roues

Les roues utiliseacutees sont des roues de roller de diamegravetre 80mm et drsquoune largeur de 22mm Ces roues sont relieacutees agrave lrsquoarbre drsquoun renvoi drsquoangle par lrsquointermeacutediaire drsquoun accouplement en aluminium

5 La base

Pour la base du robot il nous a parut indispensable de dimensionner la plaque de fond en eacutepaisseur De plus afin de maintenir la solution de modulariteacute de lrsquoensemble moteurs ndash roues nous avons deacutecideacute de fixer les deux supports moteurs sur un platine qui sera elle-mecircme fixeacutee agrave la plaque de fond du robot

Premiegraverement nous avons effectueacute un dimensionnement succinct de la platine

a Reacuteaction drsquoappui

0=sum Fx OK

0=sum Fy qLRbRaorRbRaqL210 =+=++minus

qLRa21=

AB = 027 m = L

P = mg P = 15 x 10 = 150 N

Q = 150 N270 mm soit q = 555 Nm

Bille folle

Accouplement

Bloc moteur

Renvoi drsquoangle

Platine

Base du robot

Motoreacuteducteur

Roue

b Moment de flexion

0 =sum= cMMf

02

sup2 =minus+ RaxqxMf

sup221

21 qxqLxMf minus=

c Flegraveche

)( xMfEIY =

sup221

21 qxqLxEIY minus=

161sup2

41 3 CqxqLxEIY +minus=

21241

121 43 CxCqxqLxEIY ++minus=

d Conditions aux limites

Y (x=0) = 0 C2 = 0

Y (x=L) = 0 012412

44

=+minus LCqLqL

241

4qLLC =

241

3qLC =

On obtient donc

xqLqxqLxEIY 343

241

241

121 +minus=

De mecircme

+minus=

242412

343 xLxLxEIqY

On sait que bull E = 210 000 10^6bull Y = 1 10^-3 mbull Q = 555 Nmbull L = 027 m

bull12

3bhI = b = 006 m

+

minus

=24

22416

128

343 LL

LLL

EYqI

36

4

0010102100000601052155512timestimes

timestimes=minus

h

Et enfin on trouve h lrsquoeacutepaisseur de la platine h= 43 mm

Apregraves reacuteflexion nous nous sommes rendu compte que ce calcul nrsquoeacutetait pas rigoureux car nous avons consideacutereacute la theacuteorie des poutres or dans notre cas nous ne pouvons satisfaire cette theacuteorie (Longueur de la section = 10 x la largeur de la section)

Il nous faut donc utiliser un modegravele plus preacutecis crsquoest pourquoi nous avons deacutecideacute de faire un calcul par eacuteleacutements finis sous Ideacuteas Ainsi nous trouvons une eacutepaisseur h = 32 mm

Il nous faut donc une platine de plus de 3 mm Etant donneacute que la platine sera solidairement fixeacutee agrave la base du robot nous avons deacutecideacute de prendre une eacutepaisseur de platine de 2 mm et une eacutepaisseur de base de robot de 2 mm Nous obtenons donc une eacutepaisseur totale de 4 mm Ainsi nous devrions avoir sous une charge de 15 kg moins drsquoun millimegravetre de flexion de la base du robot

6 Reacutesultats

Assemblage en position horizontale

Vue eacuteclateacutee en position verticale

Photo de lrsquoassemblage roues ndash blocs moteurs ndash moteurs ndash platine

Partie C Lrsquoeacutelectronique20 Les batteries

Afin de pouvoir choisir les batteries approprieacutees agrave notre application nous devons dans un premier temps faire une estimation de la consommation drsquoeacutenergie totale avec les pointes de courant envisageacutees dans notre robotIl est agrave noter que nous ne connaissons pas encore en deacutetail tous les eacuteleacutements annexes qui seront implanteacutes dans le robot comme par exemple les capteurs et actionneurs diverses qui seront choisis en fonction des objectifs technologiques atteints ou non de lrsquoassociation et de la strateacutegie finaleDans le but de pouvoir utiliser agrave nouveau dans lrsquoavenir notre base roulante nous avons choisi de surestimer les besoins en eacutenergie de sorte agrave ne pas ecirctre pris au deacutepourvu

La consommation pourrait se deacutecomposer ainsi - 2 moteurs de 24V sous 21A soit 1008 Watts pendant 100 du temps- 3 actionneurs de 21 Watts chacun soit 63 Watts pendant 50 du temps- 3A pour lrsquoeacutelectronique sous 5V soit 15 Watts pendant 100 du temps (Asservissement carte de commandes capteurs)

Ce qui nous fait au total une consommation maximale ~180 WattsLa consommation permanente devrait ecirctre ~147 Watts permanents il faut donc que les batteries puissent deacutebiter un courant de ~6 A sous 24 V durant le fonctionnement du robot

Apregraves une longue recherche on a pu reacutealiser le tableau comparatif des batteries suivant

typeDensiteacute

deacutenergie (WhKg)

Densiteacute deacutenergie (WhL)

auto-deacutecharge (mois)

voltage dune cellule (V)

temps de charge rapide

plomb 35 111 5 agrave 10 2 8h agrave 15h

NiCd (Nickel Cadnium) 50 94 10 agrave 20 12 1h30min

NiMH (Nickel Metal Hydride) 80 135 20 agrave 30 13 2h agrave 4h

Lithium Ion 100 196 5 agrave 10 36 2h agrave 4h

Lithium polymer 150 200 5 agrave 10 36 2h agrave 4h

AlKaline rechargeable 80 15 2h agrave 3h

type

cycle de charge-deacutecharge avant

que capaciteacute passe de 100 agrave

80

Courant max Courant max pic effet meacutemoire estimation

(euroWh) prixcycles

plomb 200 agrave 300 02C 05C M 0895 0003

NiCd (Nickel Cadnium) 1500 1C 20C H 416 0003

NiMH (Nickel Metal Hydride) 300 agrave 500 05C 5C L 2 0004

Lithium Ion 500 agrave 1000 1C 2C L 8 0008

Lithium polymer 300 agrave 500 1C 2C agrave 5C L 32 0006

AlKaline rechargeable 50 02C 05C H 178 0036

Effet meacutemoire L (Low) M (Medium) H (High)Courant max C signifie capaciteacute par exemple une batterie qui peut deacutelivrer un courant max de 1C de 4Ah pourra donc deacutelivrer 4A au maximum sans risque de deacuteteacuterioration

Nous nous sommes inteacuteresseacutes au courant maximum et au temps de charge rapide pour notre choix de batteriesLe type de batterie qui semble le plus approprieacute pour nous est le type Nickel-Cadnium parfaitement adapteacute au pic drsquoappel de courant que provoquent des moteurs pouvant supporter des charges rapides en 1h30min seulement afin de devoir preacutevoir trop de jeux de batteries diffeacuterents

Les batteries LI-Ion ou LI-Polymer preacutesentent une densiteacute eacutenergeacutetique tregraves inteacuteressante mais leur prix est beaucoup plus eacuteleveacute agrave lrsquoachat et de plus dans notre application roulant sur un sol peu accidenteacute la masse pouvant ecirctre transporteacutee est suffisante pour le type NiCd

Les batteries LI-Ion ou LI-Polymer sont plus adapteacutees agrave lrsquoaeacuteromodeacutelisme ou au petit appareil eacutelectroniqueQuant aux batteries au plomb qui sont vraiment bon marcheacute le courant maximum supporteacute est trop faible est supposerait drsquoavoir une forte capaciteacute

Nous voulons avoir une autonomie de 30 minutes il nous faut donc une eacutenergie de 735 WhOr sous 24 V les batteries doivent avoir une capaciteacute de ~3 AhComme les batteries NiCd peuvent deacutebiter un courant maximum de 1C (une fois leur capaciteacute) nous devons donc prendre des batteries de 6Ah sous 24 V ce qui nous donnera une autonomie de 1 heure

Il faudra donc soit acheter un bloc accumulateur NiCd de 24 V 6 Ah srsquoil existe dans le commerce soit le reacutealiser nous mecircme en assemblant diffeacuterents eacuteleacutements

Rappelons que lrsquoassociation en seacuterie permet drsquoadditionner les tensions des eacuteleacutements associeacutes et que lrsquoassociation en parallegravele permet drsquoadditionner les courants deacutebiteacutes

Par exemple des eacuteleacutements de 12 V chacun pour 3 Ah srsquoassocieraient ainsi

Soit deux seacuteries de 20 eacuteleacutements eacutequivalentes agrave 24 V et faisant une capaciteacute de 3 Ah chacune

Il est possible de reacutepartir les accumulateurs en diffeacuterents paquets pour faciliter le rangement dans le robot ou reacutepartir la masse ou eacuteventuellement trouver des packs dans le commerce

Dans le cas de lrsquoUV PR le choix des batteries reste pour le moment sur les NiCd mais pour les essais pratiques on utilisera des batteries au plomb que lrsquoon possegravede deacutejagrave drsquoautant plus que les essais sont reacutealiseacutes avec les moteurs de propulsion et lrsquoasservissement seul ce qui

neacutecessite un deacutebit de courant de 24105 = 4375 A sur 2 batteries soit asymp2187 A

Comme les batteries au plomb peuvent deacutebiter 02C il nous en faudrait des de asymp 109 Ah

Or les essais de la base roulante ne seront que de courtes dureacutees et lrsquoon se contentera donc drsquoutiliser des batteries de 6 Ah pour des raisons de volume mecircme si elles ne sont pas vraiment bien dimensionneacutees

21 La commande des moteurs

Dans un premier temps nous verrons un bref reacutecapitulatif des cartes et modules drsquoasservissement du commerce

Pour la commande les moteurs plusieurs solutions ont eacuteteacute envisageacutees - Un asservissement lsquotout faitrsquo analogique modules laquo Escap raquo- Une solution lsquoartisanalersquo carte avec asservissement numeacuterique- Un asservissement lsquotout faitrsquo numeacuterique circuits laquo LM629 raquo

a Comparatifs des modules drsquoasservissement et calcul des correcteurs

Veille technologique sur les systegravemes drsquoasservissement utiliseacutes par les diffeacuterentes eacutecoles de la coupe E= M6

Le but de cette partie est drsquoeacutetudier les principales techniques drsquoasservissement utiliseacutees par les eacutecoles de la Coupe E=M6 Ce document est loin drsquoecirctre exhaustif et servira de base agrave compleacuteter et actualiser pour les semestres et eacutequipes prochaines

Apregraves une eacutetude sur plus drsquoune trentaine drsquoeacutecoles il ressort trois formes drsquoasservissement la plus utiliseacutee agrave 85 est du type PID en majoriteacute reacuteduit au PI ensuite viennent les microcontrocircleurs PIC associeacutes au PID et les modules AVR nous allons par la suite deacutetailler ces trois solutions Il existe eacutegalement des systegravemes de controcircle dits agrave retour drsquoeacutetat jamais utiliseacutes jusqursquoagrave preacutesent pour la Coupe crsquoest pourquoi nous ne deacutevelopperons pas son approche

3 Systegraveme PID

httpwwwancrorgfichtechactionpidindexhtm

a Principe

Pour pouvoir tester un asservissement il faut dabord reacutealiser une plate-forme de deacuteveloppement le plus geacuteneacuteralement du type suivant Mais pour commencer un brin de theacuteorie illustreacute par des exemples Le scheacutema de principe est repreacutesenteacute ci-dessous

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

Nous avons bien un scheacutema en boucle fermeacutee puisque la sortie du systegraveme est reacuteinjecteacutee dans lentreacutee Les trois blocs bleus correspondent chacun agrave une fonctionnaliteacute Ki est le coefficient inteacutegral Kp le coefficient proportionnel et Kd le coefficient deacuteriveacute Chacun de ces coefficients a une fonctionnaliteacute bien preacutecise Commenccedilons par le plus simple le proportionnel

b Asservissement P

Lasservissement proportionnel est essentiel au fonctionnement du PID Il permet essentiellement de donner de la puissance au moteur Voici quelques reacutesultats dexpeacuterimentations avec Ki=0 et Kd=0

La courbe noire repreacutesente la consigne que lon deacutesire atteindre (Ud) cest un eacutechelon de valeur 32 La courbe bleue repreacutesente la vitesse reacuteelle du systegraveme (Y) Comme vous pouvez le constater plus Kp est grand plus le systegraveme converge vite vers sa valeur finale Mais en contrepartie pour des valeurs de Kp trop grandes le systegraveme oscille Mais lagrave nest pas notre plus gros problegraveme en effet sur ces courbes on voit nettement que la vitesse du moteur natteint jamais la vitesse deacutesireacutee Cest ce que lon appelle lerreur statique elle correspond agrave la diffeacuterence entre la vitesse reacuteelle et la vitesse deacutesireacutee en reacutegime eacutetablie (une fois que le systegraveme sest stabiliseacute) Pour compenser cette erreur statique on rajoute le terme inteacutegral

c Asservissement PI

Le correcteur inteacutegral sert principalement agrave supprimer lerreur statique Lideacutee principale est de charger ou inteacutegrer lerreur depuis le deacutebut et dajouter cette erreur agrave la consigne jusquagrave ce quelle devienne nulle Lorsque cette erreur est nulle le terme inteacutegral se stabilise et il compense parfaitement lerreur entre la consigne et la vitesse reacuteelle Deacutemonstration en image

On voit cette fois-ci que le terme inteacutegral a bien fonctionneacute et que lerreur statique est nulle On constate aussi que plus le gain Ki est grand plus le systegraveme converge vite En revanche plus Ki est grand plus le systegraveme oscille et plus le deacutepassement est grand Sur des asservissements en position le terme deacuteriveacute permet de diminuer le deacutepassement et les oscillations Nous allons voir que dans notre cas nous avons quelques problegravemes

d Asservissement PID ou agrave avance de phase

On a donc rajouteacute le terme deacuteriveacute comme tout bon livre dautomatique le preacuteconise et voici les reacutesultats

Cette fois ci jai choisi de repreacutesenter la tension appliqueacutee au moteur (U) le problegraveme est bien plus flagrant ici Vous voyez que lorsque lon ajoute le terme deacuteriveacute la commande est extrecircmement bruiteacutee En reacutealiteacute on somme agrave la commande la deacuteriveacutee de la vitesse reacuteelle que lon multiplie par un gain Kd La deacuteriveacutee dune vitesse est une acceacuteleacuteration cela signifie que lon amplifie tous les bruits dacceacuteleacuteration et en plus on les multiplient par un gain Kd Donc rajoute du bruit amplifieacute dans la commande Alors pourquoi mettent t-ils ce terme deacuteriveacutee dans les livres Simplement parce que ce bruit est typique des asservissement en vitesse Sur des asservissements en position ce problegraveme est moins freacutequent car la deacuteriveacutee de la position est la vitesse

Ici le problegraveme eacutetait visible parce que nous avons reacutealiseacute toutes ces courbes sur un systegraveme reacuteel Si nous avions simuleacute ces reacutesultats lacceacuteleacuteration naurait pas eacuteteacute bruiteacutee et les courbes auraient eacuteteacute parfaites Pour impleacutementer ce PID sur notre robot il a fallu programmer en numeacuterique une deacuteriveacutee et une inteacutegrale

e PID numeacuterique et reacuteglage

Notre premier problegraveme est de programmer le terme inteacutegral Il existe une meacutethode qui consiste agrave estimer la surface entre deux eacutechantillons mais dans notre cas nous avons des problegravemes dus aux bruits et agrave la freacutequence deacutechantillonnage Alors il faut sommer toutes les erreurs depuis de deacutebut

Notre second problegraveme est de programmer le terme deacuteriveacute La meacutethode ici est de calculer la pente entre deux eacutechantillons de e Theacuteoriquement cela revient agrave faire le calcul suivant

Avec la peacuteriode deacutechantillonnage Pour faire un asservissement numeacuterique il faut impeacuterativement avoir une peacuteriode fixe Pour gagner du temps de calcul geacuteneacuteralement on inteacutegre directement dans le gain Kd

Voici un lalgorithme exemple

Ti = 0 Initialise le terme inteacutegral

for ( i=1 i lt= Nb_cycles i++ )

Init_timers (1) Initialise le timer agrave notre peacuteriode 1 ms

Y = Codeur () Stoque la valeur du codeur dans Y Rst_codeur () Remet le codeur agrave zeacutero Ud = Consigne () Mise agrave jour de la consigne e_old=e Stoque e(t-1) e = Ud - Y Calcul de lerreur Ti = Ti + e Calcul de linteacutegral Calcul du PID U = Kp e Terme proportionnel

+ Ki Ti Terme inteacutegral + Kd ( e - e_old ) Terme deacuteriveacute Moteur (U) On applique la consigne

while ( end_timer() ) On attend la fin de la peacuteriode

Pour le reacuteglage des gains Kp Ki et Kd il existe diffeacuterentes meacutethodes Ici nous lavons fait de maniegravere empirique et le reacutesultats est plutocirct bon Linconveacutenient de ces meacutethodes est quelles demandent un modegravele du systegraveme ce qui est geacuteneacuteralement dur agrave produire Il existe

aussi des composants programmables qui permettent de faire directement lasservissement numeacuterique (HCTL 1100 LM629) Ils sont exactement baseacutes sur la meacutethode preacutesenteacutee ici

Pour ce qui est du reacuteglage des correcteurs lrsquooptimal est drsquoutiliser la meacutethode de lrsquooptimum dissymeacutetrique une fois que lrsquoon agrave reacutealiseacute le modegravele du systegraveme La plus part des eacutecoles ne reacutealisent pas ce modegravele et ce limite donc agrave une correction empirique en reacutealisant des tests ou en utilisant la meacutethode Ziegler-Nichols agrave partir de la reacuteponse agrave un eacutechelon de tension

Par la suite nous rappellerons les meacutethodes de Ziegler-Nichols et de lrsquooptimum dissymeacutetrique

f Les meacutethodes de Ziegler-Nichols

Ces meacutethodes fournissent des reacuteglages pour des correcteurs de type PID (pouvant ne comporter quune action Proportionnelle une action Proportionnelle et une action Inteacutegrale ou les 3 actions simultaneacutement) dont la structure est la suivante

bull MEacuteTHODE DE ZIEGLER NICHOLS TEMPORELLE

Elle est adapteacutee aux systegravemes stables en boucle ouverte qui ont une reacuteponse apeacuteriodique La reacuteponse agrave un eacutechelon unitaire du systegraveme physique doit ecirctre enregistreacutee Diffeacuterentes caracteacuteristiques de la reacuteponse obtenue sont mesureacutees

Le modegravele approcheacute utiliseacutee par Ziegler Nichols comporte une constante de temps et un retard pur ou bien un retard pur et un inteacutegrateur

Si le systegraveme physique comporte un inteacutegrateur les mesures de a et de L demeurent disponibles sur le deacutebut de la reacuteponse

Les reacuteglages suggeacutereacutes par la meacutethode temporelle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 1a - -correcteur PI 09a 3L -

correcteur PID 12a 2L L2Concernant le raffinement des reacuteglages augmenter Kp ou diminuer Ti augment les

oscillations de la sortie

bull MEacuteTHODE DE ZIEGLER NICHOLS FREacuteQUENTIELLE

Cette meacutethode convient particuliegraverement bien aux systegravemes instables en boucle ouverte pour lesquels la meacutethode temporelle nest pas envisageable Lexpeacuterimentation se fait sur le systegraveme boucleacute avec un simple gain proportionnel qui doit ecirctre stable Le principe est de modifier la valeur du gain par essai-erreur jusquagrave atteindre la limite de stabiliteacute (pheacutenomegravene de pompage) Il reste agrave relever le gain limite K0 obtenu et agrave mesurer la peacuteriode T0 des oscillations de la reacuteponse obtenue

Les reacuteglages suggeacutereacutes par la meacutethode freacutequentielle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 05 K0 - -correcteur PI 045 K0 08 T0 -

correcteur PID 06 K0 05 T0 0125 T0

A la page Internet suivante vous trouverez un simulateur de cette meacutethode

httpwww-hadocensieginpgfrhadocateliersreglageEmpCorrReglEmpCorrDroithtml

g Meacutethode de lrsquooptimum dyssimeacutetique (voir poly MC06 Chap 5 et 8)

Cette meacutethode srsquoapplique une fois le modegravele reacutealiseacute et mis sous la forme drsquoun second ordre

et on obtient le correcteur PI

pour une surtension deacutesireacutee QdB

Q = 10^(QdB20)λ= radic(Qsup2(Qsup2-1))Δφ = arcos (1 λ)α= ((1+sin(Δφ))cos(Δφ))sup2ωN= ωQαω0= ωQradicαKP= ω0 λ KQ

4 Les microcontrocircleurs

a Avant propos

Cette fiche se veut ecirctre sous la forme dun projet Un projet non termineacute ougrave chacun peut apporter sa contribution (ameacuteliorations adaptations corrections etc)De ce fait ces pages sont ameneacutees agrave eacutevoluer et vous-mecircme pourrez participer agrave leur eacutevolution

Pourquoi avoir choisit un tel mode de travail Tout simplement parce que le sujet est vaste et que des variations sont possibles suivant lutilisation quen feront les diffeacuterentes personnes

Le but de ce projet est de reacutealiser une double asservissement de vitesse (type PID) de deux moteurs sur un seul PIC (type 16F877) Lutiliteacute majeure eacutetant de faire rouler un robot bien droit et agrave la bonne vitesse A quoi ccedila sert plus preacuteciseacutement

Avec un seul PIC ce projet permet aux roboticiens amateurs et chevronneacutes de reacutealiser facilement leur asservissement de vitesse de moteurs agrave courant continu (en geacuteneacuteral les moteurs de propulsions de leur robot mais ccedila peut ecirctre bien sucircr dautres moteurs) La commande de lasservissement pourra se faire agrave terme en liaison seacuterie (deacutejagrave fait) I2C ou par bus ISA

b Avantages

Il existe bien sucircr dautres systegravemes qui gegraverent un asservissement de vitesses Des systegravemes professionnels existent comme les LM629 Ils ont linconveacutenient decirctre cher (et ce pour un seul moteur) et relativement complexes

Pourquoi chercher un fusil pour chasser des moustiques Le double asservissement sur PIC vous coucircte le prix dun PIC soit environ 15Euro pour un 16F877 actuellement et ce pour 2 moteurs Ce double asservissement se veut relativement simple De plus vous pouvez en modifier le programme et ladapter agrave vos besoins

c Inconveacutenients

Les personnes qui auront les moyens preacutefeacutererons opter pour un systegraveme professionnel certainement pour des raisons de fiabiliteacute mais cest agrave leurs risques et peacuterils -)La puissance du PIC eacutetant limiteacutee il ne peut pas reacutealiser des PID trop rapides ou trop complexes Il y a en particulier une limitation sur le nombre dimpulsions par seconde quil est capable de geacuterer

Le langage utiliseacute eacutetant le C il faut une licence du logiciel pour pouvoir modifier et recompiler le code source c Mais le projet se veut geacuteneacuterique Une version donneacutee pourra ecirctre utiliseacute sans recompilation en respectant quelques contraintes

d Asservissement

En fait on pourrait imaginer quil suffirait denvoyer au moteur une puissance constante pour quil tourne tout le temps agrave la mecircme vitesse Ce nest pas vrai du tout Tout dabord 2 moteurs dune mecircme seacuterie nauront pas forceacutement le mecircme comportement Ensuite parce que les niveaux de tension ou dautre diffeacuterences eacutelectriques peuvent jouer Enfin parce que des influences exteacuterieures (obstacles frein meacutecanique du robot) peuvent jouer

Du coup il est tregraves difficile de faire aller un moteur agrave la vitesse voulue Parfois ce nest pas gecircnant mais ccedila peut lecirctre Un exemple classique est le robot avec 2 roues motrices type char une configuration qui est tregraves courante Mais pour que ce robot aille droit il faut que les 2 moteurs aillent exactement agrave la mecircme vitesse

La solution est de faire un asservissement Cest a dire moduler dynamiquement la puissance envoyeacute aux moteurs suivant leur vitesse mesureacutee afin dadapter celle-ci agrave ce qui est deacutesireacuteeCela implique un eacuteleacutement tregraves important pour asservir il faut un capteur de vitesse du moteur En geacuteneacuteral il sagit dun compte-tour qui enverra N impulsions (ou pas) par tour de moteur Ensuite un programme va calculer en fonction de la vitesse mesureacutee du moteur la puissance agrave utiliser

Les asservissements sont constamment en train de chercher leacutequilibre Il faut bien comprendre quils mettent un certain temps agrave latteindre et ce dernier peut aussi ecirctre instable si lasservissement est mal reacutegleacute

Lasservissement quon va utiliser ici est un classique PIDou plus preacuteciseacutement un PI car pour des raisons de vitesses de traitement la composante deacuteriveacutee est laisseacutee de coteacute (mais rien de difficile agrave rajouter)

Le PID ou Proportionnel Inteacutegrale Deacuteriveacute est une meacutethode de calcul dasservissement

Soit Kp Ki et Kd les coefficients proportionnels inteacutegrale et deacuteriveacuteSoit e lerreur Vitesse mesureacutee moins vitesse demandeacuteeSoit Ti le terme inteacutegral dabord initialiseacute agrave 0

Consigne a appliquer (PWM) = Kp e + (1Ki) (Ti += e) + Kd (e - e(t-1))

On pourrait dire des pages et des pages sur le PID et ce nest pas mon but ici Merci de vous reporter au lien ci-dessous

Pour plus de deacutetails sur le PID la page de lANCR httpwwwancrorgfichtechactionpidindexhtmChez les Fribottes la Simulation de Jean-Claude httpwwwwikifreefrWiKiFriindexphpSimulateur20de20PID

e Le pic

Le PIC est un petit microcontrocircleur assez bon marche et simple a programmer comme a utiliser

La aussi je vais pas rentrer dans les deacutetails vous pouvez vous reporter agrave la bdtech du site Fribotte et en particulier aux cours de Bigonoff

Le PIC est ici programmeacute en C voir la page Fribotte ici Lutilisation du langage C permet dalleacuteger consideacuterablement le deacuteveloppement dune application compliqueacutee

2 Module AVR

httpwwwenseirbfr~matzfravrphp

Tregraves peu de renseignement sur ce module sinon ces informations drsquoun eacutetudiant de lrsquoEnseirb

Depuis plusieurs anneacutees je participe agrave la coupe de robotique E=M6 dont lobjectif pour chaque eacutequipe est de fabriquer un robot autonome devant se conformer agrave un regraveglement Pour plus dinfos vous pouvez vous rendre sur le site de mon eacutequipe Microb Technology ou bien sur le site de Planegravete Sciences lorganisme beacuteneacutevole qui organise cette compeacutetition

Jai deacutecouvert en 2001 les microcontrocircleurs Atmel AVR auxquels je me suis beaucoup attacheacute dune part parce quils sont assez performants pour des microcontrocircleurs 8 bits mais aussi et surtout car le fameux compilateur libre GCC est capable de compiler du code C pour ces petites becirctes Il existe de surcroicirct plusieurs outils libres permettant de les programmer de les simuler etc

Le but de ce projet est donc de deacutevelopper des modules servant dinterface geacuteneacuterique avec le hardware du microcontrocircleur quel que soit la version (par exemple les UART inclus dans les AVR AtMega sont diffeacuterents de ceux preacutesents dans les petits AVR) et de deacutevelopper des modules utiles pour certaines utilisations usuelles et pas seulement pour la coupe E=M6 (codage de hamming asservissement chiffrement etc)

Vous pouvez contacter leacutequipe de deacuteveloppement agrave avr-devdroids-corporg Pour le moment aucune release na eacuteteacute faite mais le travail est deacutejagrave bien avanceacute Chaque soir un screenshot du CVS est reacutealiseacute Il peut ne pas compiler mais normalement ccedila devrait fonctionner Voici le lien

3 Modules drsquoasservissement analogique laquo Escap raquo

Nous avons essayeacute de reacutecupeacuterer les cartes de commande Escap pour moteurs Escap qui avaient eacuteteacute utiliseacutees en 96 et 98 avec succegraves

Nous les avons monteacutes sur une base roulante qui pesait en tout 74 kgVoici grosso-modo leurs avantages et leurs inconveacutenients (pour les notices techniques voir le rapport 96 ou 98)

a Avantages

Cette carte inclut directement un asservissement avec correcteur PI la commande de puissance les ponts en H

Elle est tregraves facile agrave utiliser Elle est speacutecialement conccedilue pour les moteurs Escap que nous avons donc

parfaitement adapteacutee

b Inconveacutenients

Les moteurs ne fonctionnent correctement que sous 24v Les cartes et les moteurs semblent assez gourment Les cartes nantis de gros radiateurs sont relativement encombrantes Les tachymegravetres monteacutes sur les moteurs ne donnent pas une indication de position

mais de vitesse (qui plus est en analogique)

Nous avons preacutefeacutereacute refaire la partie commande car celle de 1996 souffrait de quelques deacutefauts (cf rapport 1996)

La conversion numeacuterique analogique

Pour reacutealiser la conversion numeacuterique analogique nous avons choisit un pont agrave reacutesistance R-2R

Nous pouvons consideacuterer que chaque bit est relieacute agrave un geacuteneacuterateur ideacuteal de tension (qui deacutelivre 0v ou 5v) Par conseacutequent la reacutesistance eacutequivalente quelque soit lrsquoeacutetat des bits et quelques soit le nombre de bits vue entre la sortie et la masse sera eacutegal agrave R

La tension Vs en fonction de lrsquoeacutetat des bits sera

Ce type de CAN eacutetant tregraves classique nous nrsquoindiquerons pas les deacutemonstrations toutefois vous pourrez les trouver tregraves facilement sur Internet ou sur le Cd-rom drsquoannexes joint au dossier

Le montage de Thevenin eacutequivalent est donc

Nous avons jugeacute qursquoune discreacutetisation sur 8 bits eacutetait un peu superflu crsquoest pourquoi nous nous contenterons de 4 bits (ce qui repreacutesentent quand mecircme 16 niveaux de vitesse)

bull Lrsquoadaptation du niveau de tension

Nous avons agrave la sortie du CAN une tension qui srsquoeacutetend de 0 agrave 5v or la commande des cartes Escap ce fait entre -5v et +5v

On peut voir cette adaptation comme lrsquoajout drsquoun offset de -25v et une amplification de gain 2

Voici le montage reacutealisant cette conversion

M1 est un montage suiveur qui lsquorecopiersquo la tension aux bornes de P1 mais sous une impeacutedance constante et eacutegale agrave 4R En 1996 lrsquoeacutequipe avait brancheacute P1 directement sur M3 mais cela a pour inconveacutenient de faire varier agrave la fois lrsquooffset et la penteLe potentiomegravetre P1 permet drsquoajuster lrsquooffset (permet par conseacutequent de reacutegler lrsquoarrecirct complet de moteur) (La valeur theacuteorique de lrsquooffset est 5V (cf formule en M3))

M2 est aussi un montage suiveur Le potentiomegravetre P2 permet drsquoajuster la pente (qui doit avoir un coefficient directeur de 2) Comme M2 est connecteacute au CAN dont la reacutesistance interne est de R P2 doit ecirctre a peut precirct eacutegal agrave R de la sorte la branche aura une reacutesistance eacutequivalente de 2R

M3 Sommateur (Vs = - 2 (Ve + Voffset))

Qursquoelle valeur choisir pour R

Theacuteoriquement on peut choisir nrsquoimporte quelle valeur pour R mais en pratique si R est trop petite une intensiteacute importante serait consommeacutee sans raison et si R est trop grande la forte impeacutedance du montage le rendra tregraves sensible aux parasites (secteur moteurshellip)Ce montage a eacuteteacute testeacute et fonctionne correctement pour R=5k les amplificateurs opeacuterationnels utiliseacutes sont des LM324 mais drsquoautres seraient tout agrave fait envisageables (peu de contraintes de vitesse et de tensions de deacutechets)

4 Conclusion

Nous avons preacutefeacutereacute ne pas utiliser les cartes Escap car les moteurs ne renvoient pas une position sous forme drsquoimpulsion mais une vitesse Etant donneacute que nous avions envisageacute un repeacuterage par odomeacutetrie cela compliquait consideacuterablement la tache

Toutefois il faut savoir que cette solution a eacuteteacute testeacutee et fonctionne tregraves bien (bonne preacutecision bonne dynamique) ainsi dans le cas ougrave le repeacuterage ne se fait pas par odomeacutetrie mais des balises exteacuterieures sachez que cette solution est tregraves pratique agrave utiliser En effet pour imposer une vitesse il suffit au microcontrocircleur drsquoappliquer sur un port un mot binaire correspondant agrave la vitesse voulue hellip et crsquoest tout La carte Escap se charge du reste

5 Carte drsquoasservissement numeacuterique laquo artisanale raquo

La carte reacutealiseacutee baseacutee sur un microcontrocircleur PIC 16F877A srsquoest aveacutereacutee fonctionnelle mais les tests drsquoalgorithmes drsquoasservissement nrsquoont pas eacuteteacute effectueacutesEn effet lrsquoutilisation de cette solution neacutecessite un microcontrocircleur deacutedieacute agrave lrsquoasservissement capable de communiquer via un protocole agrave deacutefinir avec la laquo carte megravere raquo (centralisant les retours des autres capteurs du robot et agissant sur les diffeacuterents actionneurs en fonction de la strateacutegie)Or afin de limiter le nombre de microcontrocircleurs sur le robot et du fait que lrsquoon dispose drsquoun budget suffisant nous avons deacutecideacute drsquoessayer drsquoutiliser des composants speacuteciaux reacutealisant lrsquoasservissement

Le systegraveme se deacutecompose en

- Un microcontrocircleur pour appliquer la PWM asservir et commander- Une carte de puissance pour chaque moteur baseacutee sur un LMD18200- Une carte compteur drsquoimpulsions pour les codeurs

Afin de favoriser lrsquointeractiviteacute et les reacuteglages jrsquoai ajouteacute une carte afficheur LCD avec 6 boutons sur la carte microcontrocircleur

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 2: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

LANFRANCHI Vincent Automne 2004

UV PR Reacutealisation drsquoune base roulanteA04

SommairePREacuteSENTATION page 3

1 La coupe E=M6 page 32 Cahier des charges de lrsquoUV PR page 43 Lrsquoeacutequipe chargeacutee de lrsquoUV PR page 5

PARTIE A DESCRIPTION GEacuteNEacuteRALE DE LA BASE ROULANTE page 6

PARTIE B LA MEacuteCANIQUE page 71 Veille technologique page 72 Le choix des moteurs page 83 Les supports moteurs page 134 Les roues page 175 La base page 186 Reacutesultats page 21

PARTIE C LrsquoEacuteLECTRONIQUE page 231 Les batteries page 232 La commande des moteurs page 263 Systegraveme PID page 274 Les microcontrocircleurs page 355 Module AVR page 376 Modules drsquoasservissement analogique laquo Escap raquo page 387 Conclusion page 428 Carte drsquoasservissement numeacuterique laquo artisanale raquo page 429 Carte compteur drsquoimpulsions codeurs page 4310 Carte de puissance page 4411 Carte microcontrocircleur page 4512 Algorithme page 4913 Conclusion page 5014 Remarques page 5015 Circuits drsquoasservissement numeacuterique laquo LM629 raquo page 5116 Conclusion page 5317 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo page 5318 Conclusion page 5819 La carte megravere page 59

PARTIE 4 DIVERS page 611 Budget page 612 Fournisseurs page 623 Usinages page 63

Page 3

UV PR Reacutealisation drsquoune base roulanteA04

CONCLUSION page 64REMERCIEMENTS page 64

ANNEXES page 65

Page 4

UV PR Reacutealisation drsquoune base roulanteA04

Preacutesentation1 La coupe E=M6

La Coupe de France de Robotique est une compeacutetition au cours de laquelle viennent srsquoaffronter les grandes eacutecoles et universiteacutes franccedilaises Elle est organiseacutee par la chaicircne de teacuteleacutevision nationale M6 et lrsquoAssociation Planegravete Sciences Cette compeacutetition se deacuteroule chaque anneacutee au mois de mai sur le site de la Ferteacute Bernard agrave lrsquooccasion du festival laquo Arts et Technologie raquo plus connu sous le nom de ARTEC

Le deacutefi proposeacute par la Coupe consiste agrave concevoir et fabriquer un robot mobile totalement autonome agrave partir drsquoun sujet imposeacute par les organisateurs de la coupe et preacutesenteacute au mois de septembre

LrsquoUTC participe agrave cette compeacutetition depuis 1996 ougrave un groupe drsquoeacutetudiants motiveacutes srsquoeacutetait constitueacute de lui-mecircme pour participer agrave ce challengeAujourdrsquohui notre force est de profiter de lrsquoenseignement des anciens participants et du savoir-faire acquis

Lrsquoensemble des personnes impliqueacutees est vraiment deacutetermineacute agrave atteindre des objectifs preacutecis ameacuteliorer nos performances et eacuteliminer nos faiblesses deacutejagrave pour acceacuteder agrave la phase finale et peut-ecirctre remporter la victoire Il y a aussi la volonteacute de repreacutesenter notre eacutecole dans une compeacutetition dont les retombeacutees meacutediatiques sont de plus en plus importantes et de la faire jouer dans la mecircme cour que les plus ceacutelegravebres eacutecoles franccedilaises Par ailleurs notre eacutequipe srsquoest classeacutee 12egraveme en 2002 (sur 190 eacutequipes seacutelectionneacutees) lrsquoexpeacuterience des participations preacuteceacutedentes ayant eacuteteacute systeacutematiquement mise agrave profit

Cette activiteacute inclut eacutegalement un aspect formateur agrave ne pas neacutegliger Pour mener agrave bien ce projet il est neacutecessaire de faire les meilleurs choix dans les deacutelais les plus brefs de reacuteagir vite et de travailler efficacement Par ailleurs ce projet possegravede un aspect pratique important pour des eacutetudiants ayant des connaissances plutocirct theacuteoriques laquo mettre la main agrave la pacircte raquo permet drsquoapprendre ce qursquoimplique drsquoavoir agrave commander une piegravece ou de la fabriquer drsquoutiliser un tournevis de tenir un fer agrave souder parcourir une documentation ou encore de deacuteceler lorigine dune panne

De plus ce challenge technique et humain nous permet drsquoune part de mettre en pratique nos connaissances scientifiques agrave travers une reacutealisation concregravete et drsquoautre part drsquoacqueacuterir une certaine expeacuterience dans le travail en eacutequipe affilieacute agrave un projet complet au travers de toutes les disciplines impliqueacutees (management comptabiliteacute communication strateacutegies meacutecanique eacutelectronique informatiquehellip)

Page 5

UV PR Reacutealisation drsquoune base roulanteA04

2 La Coupe de France de Robotique 2005

Cette anneacutee les robots jouent au bowling

Chaque eacutequipe doit construire un ou deux robots entiegraverement autonomes Les matchs se jouent entre deux eacutequipes et durent 1 minute 30

Une couleur de quilles est attribueacutee agrave chaque eacutequipe Sur le terrain 15 quilles de chaque couleur sont disposeacutees aleacuteatoirement Au deacutepart celles-ci se trouvent de lrsquoautre cocircteacute drsquoun fosseacute dans le camp adverse Des ponts permettent de rejoindre lrsquoautre cocircteacute mais ceux-ci sont placeacutes aleacuteatoirement en deacutebut de partie Il est eacutegalement possible drsquoutiliser des balles de type laquo balle de squash raquo pour faire du tir balistique et ainsi espeacuterer faire tomber des quilles agrave distance

Pour gagner la partie les robots doivent renverser le plus de quilles possible Les robots peuvent aussi relever les quilles de la couleur adverse renverseacutees par lrsquoautre eacutequipe

Lrsquoeacutequipe qui a le plus de quilles de sa couleur renverseacutees en fin de match est deacuteclareacutee vainqueur

Illustration de la zone de jeu 2005

Page 6

UV PR Reacutealisation drsquoune base roulanteA04

3 Cahier des charges de lrsquoUV PR

Chaque anneacutee les strateacutegies de locomotions des robots se ressemblent cependant nous partons agrave chaque fois de zeacutero

Crsquoest pourquoi il nous a sembleacute utile drsquoessayer de construire une fois pour toute une base roulante reacuteutilisable et fiable

Nous nous sommes fixeacute comme objectifs principaux

De reacutealiser une base roulante bull Facilement reacuteutilisablebull Fiable

Commandable bull En vitessebull En distancebull En rotation

Caracteacuteristiques bull Pouvant supporter 15kgbull Ne faisant pas plus de 260 mm de large

4 Lrsquoeacutequipe chargeacutee de lrsquoUV PR

Etudiants CARLIER Pierre Emmanuel GM02DE SOUZA Damien GSM05 - CMIDUMAY Damien GM02FONDEUR Germain GM05 - MARSMONTJALON Thomas GI05 - RODRIGUES Sylvain GM05 - MARSTRANNOY Guillaume GM02

Suiveurs Projet

FORGEZ Christophe (laboratoire drsquoeacutelectromeacutecanique de lrsquoUTC)LANFRANCHI Vincent (laboratoire drsquoeacutelectromeacutecanique de lrsquoUTC)

Page 7

UV PR Reacutealisation drsquoune base roulanteA04

Partie A Description geacuteneacuterale de la base roulante

1 Carte megravere

Il srsquoagit de la carte laquo intelligente raquo du robot elle commande le deacuteplacement mais aussi les diffeacuterents actionneurs et capteurs du robot Cette partie correspond agrave

Motorola HCS12 (MC9S12DP256B) Microchip PIC 18F458 Rabbit (RCM3400) PC104 hellip

2 Asservissement

Cette partie correspond au controcircle des actionneurs elle est lrsquointerface entre la carte megravere et les effecteurs Il peut srsquoagir de

Carte de puissance Pont en H Controcircle de vitesse hellip

Page 8

UV PR Reacutealisation drsquoune base roulanteA04

Partie B La meacutecanique 1 Veille technologique

Afin de pouvoir eacuteviter de proposer ou de faire des choses deacutepasseacutees inutiles ou non fiables nous avons proceacutedeacute agrave une petite veille technologique de tout ce qui se fait agrave la Coupe de France de Robotique Pour cela nous nous sommes baseacutes sur le site de lrsquoANSTJ qui est lrsquoassociation qui organise la Coupe de France Sur son site lrsquoANSTJ a recenseacute tous les posters des eacutequipes de la compeacutetition de 2004 Ces posters sont des documents remis agrave lrsquoorganisation en mai 2004 lors de la derniegravere compeacutetition A partir de ces posters nous avons regardeacute comment les eacutequipes avaient fait leur(s) robot(s)

bull Quel systegraveme de deacuteplacement (roues chenilles pattes) bull Quel type de moteurs bull Comment et ougrave les moteurs eacutetaient placeacutes bull Les accouplements (directs ou indirects) bull La forme des robots bull La modulariteacute du laquo bloc moteur raquo

Toutes ces informations sont recenseacutees dans un tableau Excel Ce document est en annexes

Les principales informations recueillies de cette veille sont

bull La plupart des eacutequipes utilisent une liaison directebull La motorisation se fait par des rouesbull Les roues sont placeacutees agrave lrsquoarriegravere du robotbull Les robots sont de formes rectangulaires ou carreacutees

Il faut preacuteciser que ces informations sont relatives au regraveglement de la compeacutetition de 2004 Ces choix sont donc fortement lieacutes au regraveglement On peut noter que dans le passeacute plus de robot avec transmission agrave renvoi drsquoangle existaient

Deux eacuteleacutements sont donc agrave fortement retenir les chenilles ont quasiment disparu et les robots cylindriques sont en forte voie de disparition

Nous tacirccherons donc drsquoeacuteviter ces deux aspects pour la conception de notre base roulante

Page 9

UV PR Reacutealisation drsquoune base roulanteA04

2 Le choix des moteurs

a Technologies

Le regraveglement de la compeacutetition ne laissant pas de reacuteels choix quant agrave la source drsquoeacutenergie utiliseacutee nous nous sommes directement orienteacutes vers des moteurs eacutelectriques Il existe plusieurs familles de moteurs eacutelectriques

bull Les moteurs Brushlessbull Les moteurs agrave Courant Continubull Les moteurs agrave Courant Alternatifbull Les moteurs Pas agrave PasForts de nos expeacuteriences passeacutees les moteurs Pas agrave Pas on eacuteteacute directement mis de

coteacute agrave cause de leur faibles vitesse de rotation et couple En ce qui concerne les moteurs agrave Courant Alternatif leur mise en œuvre est assez compliqueacutee pour des systegravemes embarqueacutes Nous avons donc le choix entre les moteurs Brushless et les moteurs agrave Courant Continu Nous avons opteacute pour les moteurs agrave Courant Continu car ceux-ci sont plus simples agrave controcircler moins coucircteux et mieux connus que les Brushless

b Dimensionnement

Le cahier des charges nous impose les caracteacuteristiques suivantes

- Diamegravetre des roues 8cm- Poids du robot 15 kg- Vitesse maximum drsquoentraicircnement 1ms-1 - Acceacuteleacuteration maximum 1ms-2

Lrsquoassociation avait agrave sa disposition 2 motoreacuteducteurs de types AMAX 26G PLG 26 de chez MDPmotor donc le premier objectif eacutetait de veacuterifier si lrsquoon pouvait se servir de ces moteurs pour reacutepondre aux speacutecifications que lrsquoeacutequipe crsquoeacutetait fixeacute

Nous allons donc vous expliquer la deacutemarche que nous avons suivie

On peut repreacutesenter lrsquoaxe moteur comme ci dessous

Moteur

Reacuteducteur

Palier

Roue

eacutecrasement

Page 10

UV PR Reacutealisation drsquoune base roulanteA04

Tout drsquoabord il faut deacuteterminer la force de reacutesistance au roulement celle-ci va deacutependre essentiellement de deux paramegravetres

- force de frottement essieu palier donneacutee par la relation suivante

rff D

dMgF 22

times

times= micro fmicro Coefficient de frottement essieu palier

rD Diamegravetre de la roue

2d

Rayon de lrsquoessieu

- force drsquoeacutecrasement

re D

fMgF 2timestimes=M Masse du robotf Eacutecrasement (00001 m)

Ce qui nous donne lrsquoexpression de la force de reacutesistance au roulement celle-ci devant ecirctre vaincue par le moteur pour mettre le robot en mouvement

+= fdMg

DF f

rres 2

2 micro

A partir de cette force on peut deacuteterminer le couple reacutesistant permanent agrave vaincre

resr

rp FDC times=2

Pour pouvoir appliquer le principe fondamental de la meacutecanique il nous faut deacuteterminer lrsquoinertie de la charge Afin drsquoobtenir ce paramegravetre nous allons consideacuterer qursquoil y a conservation de lrsquoeacutenergie cineacutetique entre le mouvement de rotation (de la roue) et de la translation (du robot) ce qui nous donne

222

221

21

=rArr=Ω r

ccccDMJMVJ

Si lrsquoon ramegravene cette inertie au moteur cela donne

rcmc

rm

ccmc

rmmccc

kJJJJ

JJ

ηη

η

121

21

2

2

2

2

times=hArrΩ

Ωtimes=

Ω=Ωk Rapport de reacuteduction

rη Rendement du reacuteducteurcJ Inertie de la charge

mcJ Inertie rameneacutee au moteur

Page 11

Maintenant nous avons tous les eacuteleacutements pour eacutecrire le principe fondamental de la meacutecanique

mrpmmmtot CCJ minus=γ

Ici compte tenu de notre application pour deacuteterminer le couple moteur neacutecessaire il faut tenir compte du nombre de moteurs

( )[ ]mrpmmcmmoteur

m CJJnb

C 1 ++= γ

Dans lrsquoapplication le nombre de moteurs srsquoeacutelegraveve agrave deux donc si lrsquoon regarde lrsquoexpression du couple moteur pour chaque phase cela donne

- phase drsquoacceacuteleacuteration

mmaccmacc

r

rpa

r

rmaccm

CP

kC

kDMJC

η

ηγ

η

1

122

1

max

2

2

timesΩtimes=

+times

times

+=

- phase de freinage

mmfrmfr

r

rpfr

r

rmfrm

CP

kC

kDMJC

η

ηγ

η

1

122

1

max

2

2

timesΩtimes=

+times

times

+=

- reacutegime permanent

mmpermmperm

r

rppermm

CP

kC

C

η

η1

21

max

timesΩtimes=

=

Maintenant que toutes les relations ont eacuteteacute mises en eacutevidence on peut regarder les reacutesultats que lrsquoon obtient avec le moteur AMAX 26G en gardant agrave lrsquoesprit que pour lapplication on considegravere que les phases drsquoacceacuteleacuteration seront preacutepondeacuterantes crsquoest pourquoi on dimensionnera les moteurs pour les phases drsquoacceacuteleacuterations

Apparemment le moteur aurait pu convenir si le reacuteducteur avait eu un rapport de reacuteduction plus faible En effet le moteur peut deacutelivrer le couple nominal neacutecessaire mais nous ne permet pas drsquoatteindre les vitesses souhaiteacutees Dans un premier temps nous avions revu nos speacutecifications agrave la baisses envisageacute la meilleure faccedilon de commander le moteur de faccedilon agrave ce que lrsquoon deacutemarre toujours en suivant la limite de puissance imposeacutee par le collecteur meacutecanique Ceci nous aurait permis drsquoavoir la meilleure dynamique du moteur La conseacutequence de ce type de fonctionnement aurait eacuteteacute un eacutechauffement excessif et un vieillissement preacutematureacute du moteur Donc les risques de casse auraient eacuteteacute multiplieacutes

Suite agrave un incident durant les phases de tests un des moteurs crsquoest vu endommageacutes crsquoest pourquoi il agrave fallu dimensionner drsquoautres moteursNous avons donc repris nos calculs avec un nouveau rapport de reacuteduction ce qui nous donne les reacutesultats suivants

Nous avons donc rechercheacute un moteur qui aurait pu avoir ses caracteacuteristiques agrave savoir - Couple nominal 34 mNm- Vitesse nominale 3342 trmin- Puissance nominale 16 W- Alimentation 24V- Reacuteducteur 1 14

Ce qui nous donnerait en sortie de reacuteducteur - Couple nominal 033 Nm- Vitesse nominale 239 trmin

Nous avons eu beaucoup de mal agrave trouver un moteur qui reacuteponde agrave ses exigences de maniegravere preacutecise et qui ait des caracteacuteristiques geacuteomeacutetriques compatibles avec les speacutecifications meacutecaniques Ces speacutecifications meacutecaniques eacutetant contraignantes compte tenu de la strateacutegie envisageacutee

Crsquoest pourquoi nous avons seacutelectionneacute un moteur un peu surdimensionneacute pour notre application toutefois cela va dans le bon sens comme nous sommes obligeacutes de mettre un renvoi drsquoangle ce qui va augmenter les pertes et lrsquoinertie Donc ce surdimensionnement devrait palier aux impreacutevus et combler nos neacutegligences

c Choix possibles

Gracircce aux informations qui preacutecegravedent on a pu choisir 3 Reacutefeacuterences bull Un motoreacuteducteur de chez MDP-Motor avec une vitesse en charge de 309 trmin-1 et

un couple de 057 Nm reacutefeacuterence AMAX32GHPPLG42S prix unitaire TTC 310 euro (avec -20 en tant que participant agrave la Coupe) disponibles sous 12 semaines longueur sans arbre de 142 mm

bull Un motoreacuteducteur de chez MDP-Motor avec une vitesse en charge de 559 trmin-1 et un couple de 060 Nm reacutefeacuterence RE035GPLG52 prix unitaire TTC 337 euro (avec -20 en tant que participant agrave la Coupe) disponibles de suite longueur sans arbre de 144 mm

bull Un motoreacuteducteur de chez Faulhaber avec une puissance de 45 W reacutefeacuterences moteur 2657 reacuteducteur seacuterie 26 Rr =14) prix unitaire TTC 507 euro disponibles de suite longueur sans arbre 125 mm

Voir en annexes pour les caracteacuteristiques de ces reacutefeacuterencesAux vues des longueurs obtenues il nous est rapidement apparu qursquoune transmission

directe Motoreacuteducteur Roue nrsquoeacutetait pas envisageable du fait drsquoune longueur totale minimum de (125 + 30) 2 = 310 mm avec 125 la longueur drsquoun motoreacuteducteur 30 la largeur estimeacutee drsquoune roue Nous avons donc opteacute pour une solution agrave renvoi drsquoangle

d Choix deacutefinitif

Gracircce aux caracteacuteristiques preacuteceacutedentes nous avons choisi les RE035GPLG52 du fait de leurs disponibiliteacute caracteacuteristiques et prix En ce qui concerne la transmission par renvoi drsquoangle nous avons opteacute pour des systegravemes deacutejagrave tout fait qui permettent une plus grande preacutecision un meilleur rendement et un meilleur rapport qualiteacute prix que les montages artisanaux Voici la reacutefeacuterence que nous avons retenue

bull Reacutefeacuterence 748-437 chez Radiospares ou B332312 chez HPCeurope avec les caracteacuteristiques suivantes Rr = 1 C max = 068 Nm V max = 1500 trmin-1 η = 094 prix RS 5750 euro piegravece et prix HPC 52 euro piegravece (avec -10 en tant que participant agrave la Coupe) (Voir les autres caracteacuteristiques en annexes)Pour des raisons de disponibiliteacute nous avons commandeacute ces 2 piegraveces chez

Radiospares En ce qui concerne la liaison entre lrsquoarbre moteur et lrsquoarbre de la transmission nous

avons deacutecideacute drsquousiner un accouplement rigide dont les plans se trouvent en annexes Du coteacute moteur le blocage en rotation est assureacute par une vis de pression qui se trouve dans la gorge preacutevue initialement pour la clavette De lrsquoautre coteacute nous avons usineacute un meacuteplat sur lrsquoarbre du reacuteducteur meacuteplat sur lequel vient appuyer une autre vis de pression

3 Les supports des moteurs

A lrsquoorigine nous avions penseacute mettre les moteurs et les roues coaxiaux nous avions donc imagineacute un systegraveme de bride qui permettrait de bloquer le moteur selon 2 axes de translation et 2 axes de rotation gracircce agrave 2 vis de serrage associeacutee agrave une eacutequerre qui permettait le blocage selon le dernier axe de translation et de rotation Le tout eacutetait fixeacute sur une plaque de fond qui constituerait la base du robot

Voici donc a quoi ressembler cette bride (pour un moteur)

Bride de maintien pour moteur de faible longueur

Bride monteacutee sur la plaque de fond avec un moteur

Ensuite lorsque nous sommes passeacutes agrave la solution avec renvoi drsquoangle nous avons deacutecideacute drsquousiner une piegravece certes complexe mais qui proposait une universaliteacute notamment au niveau des diffeacuterentes positions des moteurs (verticale et horizontale) aspect qui satisfait pleinement au cahier des charges Cette piegravece que par la suite nous appellerons Bloc Moteur doit permettre la mise et le maintien en position du motoreacuteducteur la mise et le maintien en position du reacuteducteur la fixation de lrsquoensemble au sein du robot notamment sur la plaque de fond

Apregraves une petite eacutetude nous sommes arriveacutes agrave une piegravece de ce type

Bloc moteur pour la solution avec renvoi dangle

Cette nouvelle piegravece agrave de nombreux avantages

bull Elle nous permet de pouvoir incorporer le renvoi drsquoangle bull De maintenir les piegraveces entre-elles et de limiter les efforts directs sur les

diffeacuterents eacuteleacutementsbull Drsquoecirctre installeacute agrave lrsquohorizontale ou agrave la verticale

Effectivement lors de la conception du bloc moteur nous avons penseacute aux anneacutees futures et nous avons donc preacutevu un montage des moteurs agrave la verticale ou agrave lrsquohorizontale

En position verticale

En position horizontale

4 Les roues

Comme vu lors de la veille technologique les chenilles ont quasiment disparu de la compeacutetition Ceci est ducirc au fait que cette technologie est difficile agrave mettre en œuvre et que les regraveglements proposent des aires de jeux totalement planes

Or cette anneacutee un fosseacute fait son apparition dans le regraveglement Ce fosseacute de 36 mm de profondeur vient seacuteparer deux aires de jeu Une neacutecessiteacute de traverser le fosseacute apparaicirct donc pour aller renverser les quilles de lrsquoadversaire

Deux solutions sont alors possibles bull Traverser sur le pont aleacuteatoirebull Traverser le fosseacute

Si nous choisissons de traverser par le pont lrsquoideacutee de garder notre systegraveme de roues est correcte par contre un systegraveme agrave chenille permettrait de passer par le fosseacute

Apregraves reacuteflexion de lrsquoeacutequipe PR et des membres de la Coupe E=M6 la solution de traverser par le pont est retenue Ce qui nous a conduit tout droit vers la solution agrave roues

Les roues utiliseacutees sont des roues de roller de diamegravetre 80mm et drsquoune largeur de 22mm Ces roues sont relieacutees agrave lrsquoarbre drsquoun renvoi drsquoangle par lrsquointermeacutediaire drsquoun accouplement en aluminium

5 La base

Pour la base du robot il nous a parut indispensable de dimensionner la plaque de fond en eacutepaisseur De plus afin de maintenir la solution de modulariteacute de lrsquoensemble moteurs ndash roues nous avons deacutecideacute de fixer les deux supports moteurs sur un platine qui sera elle-mecircme fixeacutee agrave la plaque de fond du robot

Premiegraverement nous avons effectueacute un dimensionnement succinct de la platine

a Reacuteaction drsquoappui

0=sum Fx OK

0=sum Fy qLRbRaorRbRaqL210 =+=++minus

qLRa21=

AB = 027 m = L

P = mg P = 15 x 10 = 150 N

Q = 150 N270 mm soit q = 555 Nm

Bille folle

Accouplement

Bloc moteur

Renvoi drsquoangle

Platine

Base du robot

Motoreacuteducteur

Roue

b Moment de flexion

0 =sum= cMMf

02

sup2 =minus+ RaxqxMf

sup221

21 qxqLxMf minus=

c Flegraveche

)( xMfEIY =

sup221

21 qxqLxEIY minus=

161sup2

41 3 CqxqLxEIY +minus=

21241

121 43 CxCqxqLxEIY ++minus=

d Conditions aux limites

Y (x=0) = 0 C2 = 0

Y (x=L) = 0 012412

44

=+minus LCqLqL

241

4qLLC =

241

3qLC =

On obtient donc

xqLqxqLxEIY 343

241

241

121 +minus=

De mecircme

+minus=

242412

343 xLxLxEIqY

On sait que bull E = 210 000 10^6bull Y = 1 10^-3 mbull Q = 555 Nmbull L = 027 m

bull12

3bhI = b = 006 m

+

minus

=24

22416

128

343 LL

LLL

EYqI

36

4

0010102100000601052155512timestimes

timestimes=minus

h

Et enfin on trouve h lrsquoeacutepaisseur de la platine h= 43 mm

Apregraves reacuteflexion nous nous sommes rendu compte que ce calcul nrsquoeacutetait pas rigoureux car nous avons consideacutereacute la theacuteorie des poutres or dans notre cas nous ne pouvons satisfaire cette theacuteorie (Longueur de la section = 10 x la largeur de la section)

Il nous faut donc utiliser un modegravele plus preacutecis crsquoest pourquoi nous avons deacutecideacute de faire un calcul par eacuteleacutements finis sous Ideacuteas Ainsi nous trouvons une eacutepaisseur h = 32 mm

Il nous faut donc une platine de plus de 3 mm Etant donneacute que la platine sera solidairement fixeacutee agrave la base du robot nous avons deacutecideacute de prendre une eacutepaisseur de platine de 2 mm et une eacutepaisseur de base de robot de 2 mm Nous obtenons donc une eacutepaisseur totale de 4 mm Ainsi nous devrions avoir sous une charge de 15 kg moins drsquoun millimegravetre de flexion de la base du robot

6 Reacutesultats

Assemblage en position horizontale

Vue eacuteclateacutee en position verticale

Photo de lrsquoassemblage roues ndash blocs moteurs ndash moteurs ndash platine

Partie C Lrsquoeacutelectronique20 Les batteries

Afin de pouvoir choisir les batteries approprieacutees agrave notre application nous devons dans un premier temps faire une estimation de la consommation drsquoeacutenergie totale avec les pointes de courant envisageacutees dans notre robotIl est agrave noter que nous ne connaissons pas encore en deacutetail tous les eacuteleacutements annexes qui seront implanteacutes dans le robot comme par exemple les capteurs et actionneurs diverses qui seront choisis en fonction des objectifs technologiques atteints ou non de lrsquoassociation et de la strateacutegie finaleDans le but de pouvoir utiliser agrave nouveau dans lrsquoavenir notre base roulante nous avons choisi de surestimer les besoins en eacutenergie de sorte agrave ne pas ecirctre pris au deacutepourvu

La consommation pourrait se deacutecomposer ainsi - 2 moteurs de 24V sous 21A soit 1008 Watts pendant 100 du temps- 3 actionneurs de 21 Watts chacun soit 63 Watts pendant 50 du temps- 3A pour lrsquoeacutelectronique sous 5V soit 15 Watts pendant 100 du temps (Asservissement carte de commandes capteurs)

Ce qui nous fait au total une consommation maximale ~180 WattsLa consommation permanente devrait ecirctre ~147 Watts permanents il faut donc que les batteries puissent deacutebiter un courant de ~6 A sous 24 V durant le fonctionnement du robot

Apregraves une longue recherche on a pu reacutealiser le tableau comparatif des batteries suivant

typeDensiteacute

deacutenergie (WhKg)

Densiteacute deacutenergie (WhL)

auto-deacutecharge (mois)

voltage dune cellule (V)

temps de charge rapide

plomb 35 111 5 agrave 10 2 8h agrave 15h

NiCd (Nickel Cadnium) 50 94 10 agrave 20 12 1h30min

NiMH (Nickel Metal Hydride) 80 135 20 agrave 30 13 2h agrave 4h

Lithium Ion 100 196 5 agrave 10 36 2h agrave 4h

Lithium polymer 150 200 5 agrave 10 36 2h agrave 4h

AlKaline rechargeable 80 15 2h agrave 3h

type

cycle de charge-deacutecharge avant

que capaciteacute passe de 100 agrave

80

Courant max Courant max pic effet meacutemoire estimation

(euroWh) prixcycles

plomb 200 agrave 300 02C 05C M 0895 0003

NiCd (Nickel Cadnium) 1500 1C 20C H 416 0003

NiMH (Nickel Metal Hydride) 300 agrave 500 05C 5C L 2 0004

Lithium Ion 500 agrave 1000 1C 2C L 8 0008

Lithium polymer 300 agrave 500 1C 2C agrave 5C L 32 0006

AlKaline rechargeable 50 02C 05C H 178 0036

Effet meacutemoire L (Low) M (Medium) H (High)Courant max C signifie capaciteacute par exemple une batterie qui peut deacutelivrer un courant max de 1C de 4Ah pourra donc deacutelivrer 4A au maximum sans risque de deacuteteacuterioration

Nous nous sommes inteacuteresseacutes au courant maximum et au temps de charge rapide pour notre choix de batteriesLe type de batterie qui semble le plus approprieacute pour nous est le type Nickel-Cadnium parfaitement adapteacute au pic drsquoappel de courant que provoquent des moteurs pouvant supporter des charges rapides en 1h30min seulement afin de devoir preacutevoir trop de jeux de batteries diffeacuterents

Les batteries LI-Ion ou LI-Polymer preacutesentent une densiteacute eacutenergeacutetique tregraves inteacuteressante mais leur prix est beaucoup plus eacuteleveacute agrave lrsquoachat et de plus dans notre application roulant sur un sol peu accidenteacute la masse pouvant ecirctre transporteacutee est suffisante pour le type NiCd

Les batteries LI-Ion ou LI-Polymer sont plus adapteacutees agrave lrsquoaeacuteromodeacutelisme ou au petit appareil eacutelectroniqueQuant aux batteries au plomb qui sont vraiment bon marcheacute le courant maximum supporteacute est trop faible est supposerait drsquoavoir une forte capaciteacute

Nous voulons avoir une autonomie de 30 minutes il nous faut donc une eacutenergie de 735 WhOr sous 24 V les batteries doivent avoir une capaciteacute de ~3 AhComme les batteries NiCd peuvent deacutebiter un courant maximum de 1C (une fois leur capaciteacute) nous devons donc prendre des batteries de 6Ah sous 24 V ce qui nous donnera une autonomie de 1 heure

Il faudra donc soit acheter un bloc accumulateur NiCd de 24 V 6 Ah srsquoil existe dans le commerce soit le reacutealiser nous mecircme en assemblant diffeacuterents eacuteleacutements

Rappelons que lrsquoassociation en seacuterie permet drsquoadditionner les tensions des eacuteleacutements associeacutes et que lrsquoassociation en parallegravele permet drsquoadditionner les courants deacutebiteacutes

Par exemple des eacuteleacutements de 12 V chacun pour 3 Ah srsquoassocieraient ainsi

Soit deux seacuteries de 20 eacuteleacutements eacutequivalentes agrave 24 V et faisant une capaciteacute de 3 Ah chacune

Il est possible de reacutepartir les accumulateurs en diffeacuterents paquets pour faciliter le rangement dans le robot ou reacutepartir la masse ou eacuteventuellement trouver des packs dans le commerce

Dans le cas de lrsquoUV PR le choix des batteries reste pour le moment sur les NiCd mais pour les essais pratiques on utilisera des batteries au plomb que lrsquoon possegravede deacutejagrave drsquoautant plus que les essais sont reacutealiseacutes avec les moteurs de propulsion et lrsquoasservissement seul ce qui

neacutecessite un deacutebit de courant de 24105 = 4375 A sur 2 batteries soit asymp2187 A

Comme les batteries au plomb peuvent deacutebiter 02C il nous en faudrait des de asymp 109 Ah

Or les essais de la base roulante ne seront que de courtes dureacutees et lrsquoon se contentera donc drsquoutiliser des batteries de 6 Ah pour des raisons de volume mecircme si elles ne sont pas vraiment bien dimensionneacutees

21 La commande des moteurs

Dans un premier temps nous verrons un bref reacutecapitulatif des cartes et modules drsquoasservissement du commerce

Pour la commande les moteurs plusieurs solutions ont eacuteteacute envisageacutees - Un asservissement lsquotout faitrsquo analogique modules laquo Escap raquo- Une solution lsquoartisanalersquo carte avec asservissement numeacuterique- Un asservissement lsquotout faitrsquo numeacuterique circuits laquo LM629 raquo

a Comparatifs des modules drsquoasservissement et calcul des correcteurs

Veille technologique sur les systegravemes drsquoasservissement utiliseacutes par les diffeacuterentes eacutecoles de la coupe E= M6

Le but de cette partie est drsquoeacutetudier les principales techniques drsquoasservissement utiliseacutees par les eacutecoles de la Coupe E=M6 Ce document est loin drsquoecirctre exhaustif et servira de base agrave compleacuteter et actualiser pour les semestres et eacutequipes prochaines

Apregraves une eacutetude sur plus drsquoune trentaine drsquoeacutecoles il ressort trois formes drsquoasservissement la plus utiliseacutee agrave 85 est du type PID en majoriteacute reacuteduit au PI ensuite viennent les microcontrocircleurs PIC associeacutes au PID et les modules AVR nous allons par la suite deacutetailler ces trois solutions Il existe eacutegalement des systegravemes de controcircle dits agrave retour drsquoeacutetat jamais utiliseacutes jusqursquoagrave preacutesent pour la Coupe crsquoest pourquoi nous ne deacutevelopperons pas son approche

3 Systegraveme PID

httpwwwancrorgfichtechactionpidindexhtm

a Principe

Pour pouvoir tester un asservissement il faut dabord reacutealiser une plate-forme de deacuteveloppement le plus geacuteneacuteralement du type suivant Mais pour commencer un brin de theacuteorie illustreacute par des exemples Le scheacutema de principe est repreacutesenteacute ci-dessous

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

Nous avons bien un scheacutema en boucle fermeacutee puisque la sortie du systegraveme est reacuteinjecteacutee dans lentreacutee Les trois blocs bleus correspondent chacun agrave une fonctionnaliteacute Ki est le coefficient inteacutegral Kp le coefficient proportionnel et Kd le coefficient deacuteriveacute Chacun de ces coefficients a une fonctionnaliteacute bien preacutecise Commenccedilons par le plus simple le proportionnel

b Asservissement P

Lasservissement proportionnel est essentiel au fonctionnement du PID Il permet essentiellement de donner de la puissance au moteur Voici quelques reacutesultats dexpeacuterimentations avec Ki=0 et Kd=0

La courbe noire repreacutesente la consigne que lon deacutesire atteindre (Ud) cest un eacutechelon de valeur 32 La courbe bleue repreacutesente la vitesse reacuteelle du systegraveme (Y) Comme vous pouvez le constater plus Kp est grand plus le systegraveme converge vite vers sa valeur finale Mais en contrepartie pour des valeurs de Kp trop grandes le systegraveme oscille Mais lagrave nest pas notre plus gros problegraveme en effet sur ces courbes on voit nettement que la vitesse du moteur natteint jamais la vitesse deacutesireacutee Cest ce que lon appelle lerreur statique elle correspond agrave la diffeacuterence entre la vitesse reacuteelle et la vitesse deacutesireacutee en reacutegime eacutetablie (une fois que le systegraveme sest stabiliseacute) Pour compenser cette erreur statique on rajoute le terme inteacutegral

c Asservissement PI

Le correcteur inteacutegral sert principalement agrave supprimer lerreur statique Lideacutee principale est de charger ou inteacutegrer lerreur depuis le deacutebut et dajouter cette erreur agrave la consigne jusquagrave ce quelle devienne nulle Lorsque cette erreur est nulle le terme inteacutegral se stabilise et il compense parfaitement lerreur entre la consigne et la vitesse reacuteelle Deacutemonstration en image

On voit cette fois-ci que le terme inteacutegral a bien fonctionneacute et que lerreur statique est nulle On constate aussi que plus le gain Ki est grand plus le systegraveme converge vite En revanche plus Ki est grand plus le systegraveme oscille et plus le deacutepassement est grand Sur des asservissements en position le terme deacuteriveacute permet de diminuer le deacutepassement et les oscillations Nous allons voir que dans notre cas nous avons quelques problegravemes

d Asservissement PID ou agrave avance de phase

On a donc rajouteacute le terme deacuteriveacute comme tout bon livre dautomatique le preacuteconise et voici les reacutesultats

Cette fois ci jai choisi de repreacutesenter la tension appliqueacutee au moteur (U) le problegraveme est bien plus flagrant ici Vous voyez que lorsque lon ajoute le terme deacuteriveacute la commande est extrecircmement bruiteacutee En reacutealiteacute on somme agrave la commande la deacuteriveacutee de la vitesse reacuteelle que lon multiplie par un gain Kd La deacuteriveacutee dune vitesse est une acceacuteleacuteration cela signifie que lon amplifie tous les bruits dacceacuteleacuteration et en plus on les multiplient par un gain Kd Donc rajoute du bruit amplifieacute dans la commande Alors pourquoi mettent t-ils ce terme deacuteriveacutee dans les livres Simplement parce que ce bruit est typique des asservissement en vitesse Sur des asservissements en position ce problegraveme est moins freacutequent car la deacuteriveacutee de la position est la vitesse

Ici le problegraveme eacutetait visible parce que nous avons reacutealiseacute toutes ces courbes sur un systegraveme reacuteel Si nous avions simuleacute ces reacutesultats lacceacuteleacuteration naurait pas eacuteteacute bruiteacutee et les courbes auraient eacuteteacute parfaites Pour impleacutementer ce PID sur notre robot il a fallu programmer en numeacuterique une deacuteriveacutee et une inteacutegrale

e PID numeacuterique et reacuteglage

Notre premier problegraveme est de programmer le terme inteacutegral Il existe une meacutethode qui consiste agrave estimer la surface entre deux eacutechantillons mais dans notre cas nous avons des problegravemes dus aux bruits et agrave la freacutequence deacutechantillonnage Alors il faut sommer toutes les erreurs depuis de deacutebut

Notre second problegraveme est de programmer le terme deacuteriveacute La meacutethode ici est de calculer la pente entre deux eacutechantillons de e Theacuteoriquement cela revient agrave faire le calcul suivant

Avec la peacuteriode deacutechantillonnage Pour faire un asservissement numeacuterique il faut impeacuterativement avoir une peacuteriode fixe Pour gagner du temps de calcul geacuteneacuteralement on inteacutegre directement dans le gain Kd

Voici un lalgorithme exemple

Ti = 0 Initialise le terme inteacutegral

for ( i=1 i lt= Nb_cycles i++ )

Init_timers (1) Initialise le timer agrave notre peacuteriode 1 ms

Y = Codeur () Stoque la valeur du codeur dans Y Rst_codeur () Remet le codeur agrave zeacutero Ud = Consigne () Mise agrave jour de la consigne e_old=e Stoque e(t-1) e = Ud - Y Calcul de lerreur Ti = Ti + e Calcul de linteacutegral Calcul du PID U = Kp e Terme proportionnel

+ Ki Ti Terme inteacutegral + Kd ( e - e_old ) Terme deacuteriveacute Moteur (U) On applique la consigne

while ( end_timer() ) On attend la fin de la peacuteriode

Pour le reacuteglage des gains Kp Ki et Kd il existe diffeacuterentes meacutethodes Ici nous lavons fait de maniegravere empirique et le reacutesultats est plutocirct bon Linconveacutenient de ces meacutethodes est quelles demandent un modegravele du systegraveme ce qui est geacuteneacuteralement dur agrave produire Il existe

aussi des composants programmables qui permettent de faire directement lasservissement numeacuterique (HCTL 1100 LM629) Ils sont exactement baseacutes sur la meacutethode preacutesenteacutee ici

Pour ce qui est du reacuteglage des correcteurs lrsquooptimal est drsquoutiliser la meacutethode de lrsquooptimum dissymeacutetrique une fois que lrsquoon agrave reacutealiseacute le modegravele du systegraveme La plus part des eacutecoles ne reacutealisent pas ce modegravele et ce limite donc agrave une correction empirique en reacutealisant des tests ou en utilisant la meacutethode Ziegler-Nichols agrave partir de la reacuteponse agrave un eacutechelon de tension

Par la suite nous rappellerons les meacutethodes de Ziegler-Nichols et de lrsquooptimum dissymeacutetrique

f Les meacutethodes de Ziegler-Nichols

Ces meacutethodes fournissent des reacuteglages pour des correcteurs de type PID (pouvant ne comporter quune action Proportionnelle une action Proportionnelle et une action Inteacutegrale ou les 3 actions simultaneacutement) dont la structure est la suivante

bull MEacuteTHODE DE ZIEGLER NICHOLS TEMPORELLE

Elle est adapteacutee aux systegravemes stables en boucle ouverte qui ont une reacuteponse apeacuteriodique La reacuteponse agrave un eacutechelon unitaire du systegraveme physique doit ecirctre enregistreacutee Diffeacuterentes caracteacuteristiques de la reacuteponse obtenue sont mesureacutees

Le modegravele approcheacute utiliseacutee par Ziegler Nichols comporte une constante de temps et un retard pur ou bien un retard pur et un inteacutegrateur

Si le systegraveme physique comporte un inteacutegrateur les mesures de a et de L demeurent disponibles sur le deacutebut de la reacuteponse

Les reacuteglages suggeacutereacutes par la meacutethode temporelle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 1a - -correcteur PI 09a 3L -

correcteur PID 12a 2L L2Concernant le raffinement des reacuteglages augmenter Kp ou diminuer Ti augment les

oscillations de la sortie

bull MEacuteTHODE DE ZIEGLER NICHOLS FREacuteQUENTIELLE

Cette meacutethode convient particuliegraverement bien aux systegravemes instables en boucle ouverte pour lesquels la meacutethode temporelle nest pas envisageable Lexpeacuterimentation se fait sur le systegraveme boucleacute avec un simple gain proportionnel qui doit ecirctre stable Le principe est de modifier la valeur du gain par essai-erreur jusquagrave atteindre la limite de stabiliteacute (pheacutenomegravene de pompage) Il reste agrave relever le gain limite K0 obtenu et agrave mesurer la peacuteriode T0 des oscillations de la reacuteponse obtenue

Les reacuteglages suggeacutereacutes par la meacutethode freacutequentielle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 05 K0 - -correcteur PI 045 K0 08 T0 -

correcteur PID 06 K0 05 T0 0125 T0

A la page Internet suivante vous trouverez un simulateur de cette meacutethode

httpwww-hadocensieginpgfrhadocateliersreglageEmpCorrReglEmpCorrDroithtml

g Meacutethode de lrsquooptimum dyssimeacutetique (voir poly MC06 Chap 5 et 8)

Cette meacutethode srsquoapplique une fois le modegravele reacutealiseacute et mis sous la forme drsquoun second ordre

et on obtient le correcteur PI

pour une surtension deacutesireacutee QdB

Q = 10^(QdB20)λ= radic(Qsup2(Qsup2-1))Δφ = arcos (1 λ)α= ((1+sin(Δφ))cos(Δφ))sup2ωN= ωQαω0= ωQradicαKP= ω0 λ KQ

4 Les microcontrocircleurs

a Avant propos

Cette fiche se veut ecirctre sous la forme dun projet Un projet non termineacute ougrave chacun peut apporter sa contribution (ameacuteliorations adaptations corrections etc)De ce fait ces pages sont ameneacutees agrave eacutevoluer et vous-mecircme pourrez participer agrave leur eacutevolution

Pourquoi avoir choisit un tel mode de travail Tout simplement parce que le sujet est vaste et que des variations sont possibles suivant lutilisation quen feront les diffeacuterentes personnes

Le but de ce projet est de reacutealiser une double asservissement de vitesse (type PID) de deux moteurs sur un seul PIC (type 16F877) Lutiliteacute majeure eacutetant de faire rouler un robot bien droit et agrave la bonne vitesse A quoi ccedila sert plus preacuteciseacutement

Avec un seul PIC ce projet permet aux roboticiens amateurs et chevronneacutes de reacutealiser facilement leur asservissement de vitesse de moteurs agrave courant continu (en geacuteneacuteral les moteurs de propulsions de leur robot mais ccedila peut ecirctre bien sucircr dautres moteurs) La commande de lasservissement pourra se faire agrave terme en liaison seacuterie (deacutejagrave fait) I2C ou par bus ISA

b Avantages

Il existe bien sucircr dautres systegravemes qui gegraverent un asservissement de vitesses Des systegravemes professionnels existent comme les LM629 Ils ont linconveacutenient decirctre cher (et ce pour un seul moteur) et relativement complexes

Pourquoi chercher un fusil pour chasser des moustiques Le double asservissement sur PIC vous coucircte le prix dun PIC soit environ 15Euro pour un 16F877 actuellement et ce pour 2 moteurs Ce double asservissement se veut relativement simple De plus vous pouvez en modifier le programme et ladapter agrave vos besoins

c Inconveacutenients

Les personnes qui auront les moyens preacutefeacutererons opter pour un systegraveme professionnel certainement pour des raisons de fiabiliteacute mais cest agrave leurs risques et peacuterils -)La puissance du PIC eacutetant limiteacutee il ne peut pas reacutealiser des PID trop rapides ou trop complexes Il y a en particulier une limitation sur le nombre dimpulsions par seconde quil est capable de geacuterer

Le langage utiliseacute eacutetant le C il faut une licence du logiciel pour pouvoir modifier et recompiler le code source c Mais le projet se veut geacuteneacuterique Une version donneacutee pourra ecirctre utiliseacute sans recompilation en respectant quelques contraintes

d Asservissement

En fait on pourrait imaginer quil suffirait denvoyer au moteur une puissance constante pour quil tourne tout le temps agrave la mecircme vitesse Ce nest pas vrai du tout Tout dabord 2 moteurs dune mecircme seacuterie nauront pas forceacutement le mecircme comportement Ensuite parce que les niveaux de tension ou dautre diffeacuterences eacutelectriques peuvent jouer Enfin parce que des influences exteacuterieures (obstacles frein meacutecanique du robot) peuvent jouer

Du coup il est tregraves difficile de faire aller un moteur agrave la vitesse voulue Parfois ce nest pas gecircnant mais ccedila peut lecirctre Un exemple classique est le robot avec 2 roues motrices type char une configuration qui est tregraves courante Mais pour que ce robot aille droit il faut que les 2 moteurs aillent exactement agrave la mecircme vitesse

La solution est de faire un asservissement Cest a dire moduler dynamiquement la puissance envoyeacute aux moteurs suivant leur vitesse mesureacutee afin dadapter celle-ci agrave ce qui est deacutesireacuteeCela implique un eacuteleacutement tregraves important pour asservir il faut un capteur de vitesse du moteur En geacuteneacuteral il sagit dun compte-tour qui enverra N impulsions (ou pas) par tour de moteur Ensuite un programme va calculer en fonction de la vitesse mesureacutee du moteur la puissance agrave utiliser

Les asservissements sont constamment en train de chercher leacutequilibre Il faut bien comprendre quils mettent un certain temps agrave latteindre et ce dernier peut aussi ecirctre instable si lasservissement est mal reacutegleacute

Lasservissement quon va utiliser ici est un classique PIDou plus preacuteciseacutement un PI car pour des raisons de vitesses de traitement la composante deacuteriveacutee est laisseacutee de coteacute (mais rien de difficile agrave rajouter)

Le PID ou Proportionnel Inteacutegrale Deacuteriveacute est une meacutethode de calcul dasservissement

Soit Kp Ki et Kd les coefficients proportionnels inteacutegrale et deacuteriveacuteSoit e lerreur Vitesse mesureacutee moins vitesse demandeacuteeSoit Ti le terme inteacutegral dabord initialiseacute agrave 0

Consigne a appliquer (PWM) = Kp e + (1Ki) (Ti += e) + Kd (e - e(t-1))

On pourrait dire des pages et des pages sur le PID et ce nest pas mon but ici Merci de vous reporter au lien ci-dessous

Pour plus de deacutetails sur le PID la page de lANCR httpwwwancrorgfichtechactionpidindexhtmChez les Fribottes la Simulation de Jean-Claude httpwwwwikifreefrWiKiFriindexphpSimulateur20de20PID

e Le pic

Le PIC est un petit microcontrocircleur assez bon marche et simple a programmer comme a utiliser

La aussi je vais pas rentrer dans les deacutetails vous pouvez vous reporter agrave la bdtech du site Fribotte et en particulier aux cours de Bigonoff

Le PIC est ici programmeacute en C voir la page Fribotte ici Lutilisation du langage C permet dalleacuteger consideacuterablement le deacuteveloppement dune application compliqueacutee

2 Module AVR

httpwwwenseirbfr~matzfravrphp

Tregraves peu de renseignement sur ce module sinon ces informations drsquoun eacutetudiant de lrsquoEnseirb

Depuis plusieurs anneacutees je participe agrave la coupe de robotique E=M6 dont lobjectif pour chaque eacutequipe est de fabriquer un robot autonome devant se conformer agrave un regraveglement Pour plus dinfos vous pouvez vous rendre sur le site de mon eacutequipe Microb Technology ou bien sur le site de Planegravete Sciences lorganisme beacuteneacutevole qui organise cette compeacutetition

Jai deacutecouvert en 2001 les microcontrocircleurs Atmel AVR auxquels je me suis beaucoup attacheacute dune part parce quils sont assez performants pour des microcontrocircleurs 8 bits mais aussi et surtout car le fameux compilateur libre GCC est capable de compiler du code C pour ces petites becirctes Il existe de surcroicirct plusieurs outils libres permettant de les programmer de les simuler etc

Le but de ce projet est donc de deacutevelopper des modules servant dinterface geacuteneacuterique avec le hardware du microcontrocircleur quel que soit la version (par exemple les UART inclus dans les AVR AtMega sont diffeacuterents de ceux preacutesents dans les petits AVR) et de deacutevelopper des modules utiles pour certaines utilisations usuelles et pas seulement pour la coupe E=M6 (codage de hamming asservissement chiffrement etc)

Vous pouvez contacter leacutequipe de deacuteveloppement agrave avr-devdroids-corporg Pour le moment aucune release na eacuteteacute faite mais le travail est deacutejagrave bien avanceacute Chaque soir un screenshot du CVS est reacutealiseacute Il peut ne pas compiler mais normalement ccedila devrait fonctionner Voici le lien

3 Modules drsquoasservissement analogique laquo Escap raquo

Nous avons essayeacute de reacutecupeacuterer les cartes de commande Escap pour moteurs Escap qui avaient eacuteteacute utiliseacutees en 96 et 98 avec succegraves

Nous les avons monteacutes sur une base roulante qui pesait en tout 74 kgVoici grosso-modo leurs avantages et leurs inconveacutenients (pour les notices techniques voir le rapport 96 ou 98)

a Avantages

Cette carte inclut directement un asservissement avec correcteur PI la commande de puissance les ponts en H

Elle est tregraves facile agrave utiliser Elle est speacutecialement conccedilue pour les moteurs Escap que nous avons donc

parfaitement adapteacutee

b Inconveacutenients

Les moteurs ne fonctionnent correctement que sous 24v Les cartes et les moteurs semblent assez gourment Les cartes nantis de gros radiateurs sont relativement encombrantes Les tachymegravetres monteacutes sur les moteurs ne donnent pas une indication de position

mais de vitesse (qui plus est en analogique)

Nous avons preacutefeacutereacute refaire la partie commande car celle de 1996 souffrait de quelques deacutefauts (cf rapport 1996)

La conversion numeacuterique analogique

Pour reacutealiser la conversion numeacuterique analogique nous avons choisit un pont agrave reacutesistance R-2R

Nous pouvons consideacuterer que chaque bit est relieacute agrave un geacuteneacuterateur ideacuteal de tension (qui deacutelivre 0v ou 5v) Par conseacutequent la reacutesistance eacutequivalente quelque soit lrsquoeacutetat des bits et quelques soit le nombre de bits vue entre la sortie et la masse sera eacutegal agrave R

La tension Vs en fonction de lrsquoeacutetat des bits sera

Ce type de CAN eacutetant tregraves classique nous nrsquoindiquerons pas les deacutemonstrations toutefois vous pourrez les trouver tregraves facilement sur Internet ou sur le Cd-rom drsquoannexes joint au dossier

Le montage de Thevenin eacutequivalent est donc

Nous avons jugeacute qursquoune discreacutetisation sur 8 bits eacutetait un peu superflu crsquoest pourquoi nous nous contenterons de 4 bits (ce qui repreacutesentent quand mecircme 16 niveaux de vitesse)

bull Lrsquoadaptation du niveau de tension

Nous avons agrave la sortie du CAN une tension qui srsquoeacutetend de 0 agrave 5v or la commande des cartes Escap ce fait entre -5v et +5v

On peut voir cette adaptation comme lrsquoajout drsquoun offset de -25v et une amplification de gain 2

Voici le montage reacutealisant cette conversion

M1 est un montage suiveur qui lsquorecopiersquo la tension aux bornes de P1 mais sous une impeacutedance constante et eacutegale agrave 4R En 1996 lrsquoeacutequipe avait brancheacute P1 directement sur M3 mais cela a pour inconveacutenient de faire varier agrave la fois lrsquooffset et la penteLe potentiomegravetre P1 permet drsquoajuster lrsquooffset (permet par conseacutequent de reacutegler lrsquoarrecirct complet de moteur) (La valeur theacuteorique de lrsquooffset est 5V (cf formule en M3))

M2 est aussi un montage suiveur Le potentiomegravetre P2 permet drsquoajuster la pente (qui doit avoir un coefficient directeur de 2) Comme M2 est connecteacute au CAN dont la reacutesistance interne est de R P2 doit ecirctre a peut precirct eacutegal agrave R de la sorte la branche aura une reacutesistance eacutequivalente de 2R

M3 Sommateur (Vs = - 2 (Ve + Voffset))

Qursquoelle valeur choisir pour R

Theacuteoriquement on peut choisir nrsquoimporte quelle valeur pour R mais en pratique si R est trop petite une intensiteacute importante serait consommeacutee sans raison et si R est trop grande la forte impeacutedance du montage le rendra tregraves sensible aux parasites (secteur moteurshellip)Ce montage a eacuteteacute testeacute et fonctionne correctement pour R=5k les amplificateurs opeacuterationnels utiliseacutes sont des LM324 mais drsquoautres seraient tout agrave fait envisageables (peu de contraintes de vitesse et de tensions de deacutechets)

4 Conclusion

Nous avons preacutefeacutereacute ne pas utiliser les cartes Escap car les moteurs ne renvoient pas une position sous forme drsquoimpulsion mais une vitesse Etant donneacute que nous avions envisageacute un repeacuterage par odomeacutetrie cela compliquait consideacuterablement la tache

Toutefois il faut savoir que cette solution a eacuteteacute testeacutee et fonctionne tregraves bien (bonne preacutecision bonne dynamique) ainsi dans le cas ougrave le repeacuterage ne se fait pas par odomeacutetrie mais des balises exteacuterieures sachez que cette solution est tregraves pratique agrave utiliser En effet pour imposer une vitesse il suffit au microcontrocircleur drsquoappliquer sur un port un mot binaire correspondant agrave la vitesse voulue hellip et crsquoest tout La carte Escap se charge du reste

5 Carte drsquoasservissement numeacuterique laquo artisanale raquo

La carte reacutealiseacutee baseacutee sur un microcontrocircleur PIC 16F877A srsquoest aveacutereacutee fonctionnelle mais les tests drsquoalgorithmes drsquoasservissement nrsquoont pas eacuteteacute effectueacutesEn effet lrsquoutilisation de cette solution neacutecessite un microcontrocircleur deacutedieacute agrave lrsquoasservissement capable de communiquer via un protocole agrave deacutefinir avec la laquo carte megravere raquo (centralisant les retours des autres capteurs du robot et agissant sur les diffeacuterents actionneurs en fonction de la strateacutegie)Or afin de limiter le nombre de microcontrocircleurs sur le robot et du fait que lrsquoon dispose drsquoun budget suffisant nous avons deacutecideacute drsquoessayer drsquoutiliser des composants speacuteciaux reacutealisant lrsquoasservissement

Le systegraveme se deacutecompose en

- Un microcontrocircleur pour appliquer la PWM asservir et commander- Une carte de puissance pour chaque moteur baseacutee sur un LMD18200- Une carte compteur drsquoimpulsions pour les codeurs

Afin de favoriser lrsquointeractiviteacute et les reacuteglages jrsquoai ajouteacute une carte afficheur LCD avec 6 boutons sur la carte microcontrocircleur

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 3: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

UV PR Reacutealisation drsquoune base roulanteA04

SommairePREacuteSENTATION page 3

1 La coupe E=M6 page 32 Cahier des charges de lrsquoUV PR page 43 Lrsquoeacutequipe chargeacutee de lrsquoUV PR page 5

PARTIE A DESCRIPTION GEacuteNEacuteRALE DE LA BASE ROULANTE page 6

PARTIE B LA MEacuteCANIQUE page 71 Veille technologique page 72 Le choix des moteurs page 83 Les supports moteurs page 134 Les roues page 175 La base page 186 Reacutesultats page 21

PARTIE C LrsquoEacuteLECTRONIQUE page 231 Les batteries page 232 La commande des moteurs page 263 Systegraveme PID page 274 Les microcontrocircleurs page 355 Module AVR page 376 Modules drsquoasservissement analogique laquo Escap raquo page 387 Conclusion page 428 Carte drsquoasservissement numeacuterique laquo artisanale raquo page 429 Carte compteur drsquoimpulsions codeurs page 4310 Carte de puissance page 4411 Carte microcontrocircleur page 4512 Algorithme page 4913 Conclusion page 5014 Remarques page 5015 Circuits drsquoasservissement numeacuterique laquo LM629 raquo page 5116 Conclusion page 5317 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo page 5318 Conclusion page 5819 La carte megravere page 59

PARTIE 4 DIVERS page 611 Budget page 612 Fournisseurs page 623 Usinages page 63

Page 3

UV PR Reacutealisation drsquoune base roulanteA04

CONCLUSION page 64REMERCIEMENTS page 64

ANNEXES page 65

Page 4

UV PR Reacutealisation drsquoune base roulanteA04

Preacutesentation1 La coupe E=M6

La Coupe de France de Robotique est une compeacutetition au cours de laquelle viennent srsquoaffronter les grandes eacutecoles et universiteacutes franccedilaises Elle est organiseacutee par la chaicircne de teacuteleacutevision nationale M6 et lrsquoAssociation Planegravete Sciences Cette compeacutetition se deacuteroule chaque anneacutee au mois de mai sur le site de la Ferteacute Bernard agrave lrsquooccasion du festival laquo Arts et Technologie raquo plus connu sous le nom de ARTEC

Le deacutefi proposeacute par la Coupe consiste agrave concevoir et fabriquer un robot mobile totalement autonome agrave partir drsquoun sujet imposeacute par les organisateurs de la coupe et preacutesenteacute au mois de septembre

LrsquoUTC participe agrave cette compeacutetition depuis 1996 ougrave un groupe drsquoeacutetudiants motiveacutes srsquoeacutetait constitueacute de lui-mecircme pour participer agrave ce challengeAujourdrsquohui notre force est de profiter de lrsquoenseignement des anciens participants et du savoir-faire acquis

Lrsquoensemble des personnes impliqueacutees est vraiment deacutetermineacute agrave atteindre des objectifs preacutecis ameacuteliorer nos performances et eacuteliminer nos faiblesses deacutejagrave pour acceacuteder agrave la phase finale et peut-ecirctre remporter la victoire Il y a aussi la volonteacute de repreacutesenter notre eacutecole dans une compeacutetition dont les retombeacutees meacutediatiques sont de plus en plus importantes et de la faire jouer dans la mecircme cour que les plus ceacutelegravebres eacutecoles franccedilaises Par ailleurs notre eacutequipe srsquoest classeacutee 12egraveme en 2002 (sur 190 eacutequipes seacutelectionneacutees) lrsquoexpeacuterience des participations preacuteceacutedentes ayant eacuteteacute systeacutematiquement mise agrave profit

Cette activiteacute inclut eacutegalement un aspect formateur agrave ne pas neacutegliger Pour mener agrave bien ce projet il est neacutecessaire de faire les meilleurs choix dans les deacutelais les plus brefs de reacuteagir vite et de travailler efficacement Par ailleurs ce projet possegravede un aspect pratique important pour des eacutetudiants ayant des connaissances plutocirct theacuteoriques laquo mettre la main agrave la pacircte raquo permet drsquoapprendre ce qursquoimplique drsquoavoir agrave commander une piegravece ou de la fabriquer drsquoutiliser un tournevis de tenir un fer agrave souder parcourir une documentation ou encore de deacuteceler lorigine dune panne

De plus ce challenge technique et humain nous permet drsquoune part de mettre en pratique nos connaissances scientifiques agrave travers une reacutealisation concregravete et drsquoautre part drsquoacqueacuterir une certaine expeacuterience dans le travail en eacutequipe affilieacute agrave un projet complet au travers de toutes les disciplines impliqueacutees (management comptabiliteacute communication strateacutegies meacutecanique eacutelectronique informatiquehellip)

Page 5

UV PR Reacutealisation drsquoune base roulanteA04

2 La Coupe de France de Robotique 2005

Cette anneacutee les robots jouent au bowling

Chaque eacutequipe doit construire un ou deux robots entiegraverement autonomes Les matchs se jouent entre deux eacutequipes et durent 1 minute 30

Une couleur de quilles est attribueacutee agrave chaque eacutequipe Sur le terrain 15 quilles de chaque couleur sont disposeacutees aleacuteatoirement Au deacutepart celles-ci se trouvent de lrsquoautre cocircteacute drsquoun fosseacute dans le camp adverse Des ponts permettent de rejoindre lrsquoautre cocircteacute mais ceux-ci sont placeacutes aleacuteatoirement en deacutebut de partie Il est eacutegalement possible drsquoutiliser des balles de type laquo balle de squash raquo pour faire du tir balistique et ainsi espeacuterer faire tomber des quilles agrave distance

Pour gagner la partie les robots doivent renverser le plus de quilles possible Les robots peuvent aussi relever les quilles de la couleur adverse renverseacutees par lrsquoautre eacutequipe

Lrsquoeacutequipe qui a le plus de quilles de sa couleur renverseacutees en fin de match est deacuteclareacutee vainqueur

Illustration de la zone de jeu 2005

Page 6

UV PR Reacutealisation drsquoune base roulanteA04

3 Cahier des charges de lrsquoUV PR

Chaque anneacutee les strateacutegies de locomotions des robots se ressemblent cependant nous partons agrave chaque fois de zeacutero

Crsquoest pourquoi il nous a sembleacute utile drsquoessayer de construire une fois pour toute une base roulante reacuteutilisable et fiable

Nous nous sommes fixeacute comme objectifs principaux

De reacutealiser une base roulante bull Facilement reacuteutilisablebull Fiable

Commandable bull En vitessebull En distancebull En rotation

Caracteacuteristiques bull Pouvant supporter 15kgbull Ne faisant pas plus de 260 mm de large

4 Lrsquoeacutequipe chargeacutee de lrsquoUV PR

Etudiants CARLIER Pierre Emmanuel GM02DE SOUZA Damien GSM05 - CMIDUMAY Damien GM02FONDEUR Germain GM05 - MARSMONTJALON Thomas GI05 - RODRIGUES Sylvain GM05 - MARSTRANNOY Guillaume GM02

Suiveurs Projet

FORGEZ Christophe (laboratoire drsquoeacutelectromeacutecanique de lrsquoUTC)LANFRANCHI Vincent (laboratoire drsquoeacutelectromeacutecanique de lrsquoUTC)

Page 7

UV PR Reacutealisation drsquoune base roulanteA04

Partie A Description geacuteneacuterale de la base roulante

1 Carte megravere

Il srsquoagit de la carte laquo intelligente raquo du robot elle commande le deacuteplacement mais aussi les diffeacuterents actionneurs et capteurs du robot Cette partie correspond agrave

Motorola HCS12 (MC9S12DP256B) Microchip PIC 18F458 Rabbit (RCM3400) PC104 hellip

2 Asservissement

Cette partie correspond au controcircle des actionneurs elle est lrsquointerface entre la carte megravere et les effecteurs Il peut srsquoagir de

Carte de puissance Pont en H Controcircle de vitesse hellip

Page 8

UV PR Reacutealisation drsquoune base roulanteA04

Partie B La meacutecanique 1 Veille technologique

Afin de pouvoir eacuteviter de proposer ou de faire des choses deacutepasseacutees inutiles ou non fiables nous avons proceacutedeacute agrave une petite veille technologique de tout ce qui se fait agrave la Coupe de France de Robotique Pour cela nous nous sommes baseacutes sur le site de lrsquoANSTJ qui est lrsquoassociation qui organise la Coupe de France Sur son site lrsquoANSTJ a recenseacute tous les posters des eacutequipes de la compeacutetition de 2004 Ces posters sont des documents remis agrave lrsquoorganisation en mai 2004 lors de la derniegravere compeacutetition A partir de ces posters nous avons regardeacute comment les eacutequipes avaient fait leur(s) robot(s)

bull Quel systegraveme de deacuteplacement (roues chenilles pattes) bull Quel type de moteurs bull Comment et ougrave les moteurs eacutetaient placeacutes bull Les accouplements (directs ou indirects) bull La forme des robots bull La modulariteacute du laquo bloc moteur raquo

Toutes ces informations sont recenseacutees dans un tableau Excel Ce document est en annexes

Les principales informations recueillies de cette veille sont

bull La plupart des eacutequipes utilisent une liaison directebull La motorisation se fait par des rouesbull Les roues sont placeacutees agrave lrsquoarriegravere du robotbull Les robots sont de formes rectangulaires ou carreacutees

Il faut preacuteciser que ces informations sont relatives au regraveglement de la compeacutetition de 2004 Ces choix sont donc fortement lieacutes au regraveglement On peut noter que dans le passeacute plus de robot avec transmission agrave renvoi drsquoangle existaient

Deux eacuteleacutements sont donc agrave fortement retenir les chenilles ont quasiment disparu et les robots cylindriques sont en forte voie de disparition

Nous tacirccherons donc drsquoeacuteviter ces deux aspects pour la conception de notre base roulante

Page 9

UV PR Reacutealisation drsquoune base roulanteA04

2 Le choix des moteurs

a Technologies

Le regraveglement de la compeacutetition ne laissant pas de reacuteels choix quant agrave la source drsquoeacutenergie utiliseacutee nous nous sommes directement orienteacutes vers des moteurs eacutelectriques Il existe plusieurs familles de moteurs eacutelectriques

bull Les moteurs Brushlessbull Les moteurs agrave Courant Continubull Les moteurs agrave Courant Alternatifbull Les moteurs Pas agrave PasForts de nos expeacuteriences passeacutees les moteurs Pas agrave Pas on eacuteteacute directement mis de

coteacute agrave cause de leur faibles vitesse de rotation et couple En ce qui concerne les moteurs agrave Courant Alternatif leur mise en œuvre est assez compliqueacutee pour des systegravemes embarqueacutes Nous avons donc le choix entre les moteurs Brushless et les moteurs agrave Courant Continu Nous avons opteacute pour les moteurs agrave Courant Continu car ceux-ci sont plus simples agrave controcircler moins coucircteux et mieux connus que les Brushless

b Dimensionnement

Le cahier des charges nous impose les caracteacuteristiques suivantes

- Diamegravetre des roues 8cm- Poids du robot 15 kg- Vitesse maximum drsquoentraicircnement 1ms-1 - Acceacuteleacuteration maximum 1ms-2

Lrsquoassociation avait agrave sa disposition 2 motoreacuteducteurs de types AMAX 26G PLG 26 de chez MDPmotor donc le premier objectif eacutetait de veacuterifier si lrsquoon pouvait se servir de ces moteurs pour reacutepondre aux speacutecifications que lrsquoeacutequipe crsquoeacutetait fixeacute

Nous allons donc vous expliquer la deacutemarche que nous avons suivie

On peut repreacutesenter lrsquoaxe moteur comme ci dessous

Moteur

Reacuteducteur

Palier

Roue

eacutecrasement

Page 10

UV PR Reacutealisation drsquoune base roulanteA04

Tout drsquoabord il faut deacuteterminer la force de reacutesistance au roulement celle-ci va deacutependre essentiellement de deux paramegravetres

- force de frottement essieu palier donneacutee par la relation suivante

rff D

dMgF 22

times

times= micro fmicro Coefficient de frottement essieu palier

rD Diamegravetre de la roue

2d

Rayon de lrsquoessieu

- force drsquoeacutecrasement

re D

fMgF 2timestimes=M Masse du robotf Eacutecrasement (00001 m)

Ce qui nous donne lrsquoexpression de la force de reacutesistance au roulement celle-ci devant ecirctre vaincue par le moteur pour mettre le robot en mouvement

+= fdMg

DF f

rres 2

2 micro

A partir de cette force on peut deacuteterminer le couple reacutesistant permanent agrave vaincre

resr

rp FDC times=2

Pour pouvoir appliquer le principe fondamental de la meacutecanique il nous faut deacuteterminer lrsquoinertie de la charge Afin drsquoobtenir ce paramegravetre nous allons consideacuterer qursquoil y a conservation de lrsquoeacutenergie cineacutetique entre le mouvement de rotation (de la roue) et de la translation (du robot) ce qui nous donne

222

221

21

=rArr=Ω r

ccccDMJMVJ

Si lrsquoon ramegravene cette inertie au moteur cela donne

rcmc

rm

ccmc

rmmccc

kJJJJ

JJ

ηη

η

121

21

2

2

2

2

times=hArrΩ

Ωtimes=

Ω=Ωk Rapport de reacuteduction

rη Rendement du reacuteducteurcJ Inertie de la charge

mcJ Inertie rameneacutee au moteur

Page 11

Maintenant nous avons tous les eacuteleacutements pour eacutecrire le principe fondamental de la meacutecanique

mrpmmmtot CCJ minus=γ

Ici compte tenu de notre application pour deacuteterminer le couple moteur neacutecessaire il faut tenir compte du nombre de moteurs

( )[ ]mrpmmcmmoteur

m CJJnb

C 1 ++= γ

Dans lrsquoapplication le nombre de moteurs srsquoeacutelegraveve agrave deux donc si lrsquoon regarde lrsquoexpression du couple moteur pour chaque phase cela donne

- phase drsquoacceacuteleacuteration

mmaccmacc

r

rpa

r

rmaccm

CP

kC

kDMJC

η

ηγ

η

1

122

1

max

2

2

timesΩtimes=

+times

times

+=

- phase de freinage

mmfrmfr

r

rpfr

r

rmfrm

CP

kC

kDMJC

η

ηγ

η

1

122

1

max

2

2

timesΩtimes=

+times

times

+=

- reacutegime permanent

mmpermmperm

r

rppermm

CP

kC

C

η

η1

21

max

timesΩtimes=

=

Maintenant que toutes les relations ont eacuteteacute mises en eacutevidence on peut regarder les reacutesultats que lrsquoon obtient avec le moteur AMAX 26G en gardant agrave lrsquoesprit que pour lapplication on considegravere que les phases drsquoacceacuteleacuteration seront preacutepondeacuterantes crsquoest pourquoi on dimensionnera les moteurs pour les phases drsquoacceacuteleacuterations

Apparemment le moteur aurait pu convenir si le reacuteducteur avait eu un rapport de reacuteduction plus faible En effet le moteur peut deacutelivrer le couple nominal neacutecessaire mais nous ne permet pas drsquoatteindre les vitesses souhaiteacutees Dans un premier temps nous avions revu nos speacutecifications agrave la baisses envisageacute la meilleure faccedilon de commander le moteur de faccedilon agrave ce que lrsquoon deacutemarre toujours en suivant la limite de puissance imposeacutee par le collecteur meacutecanique Ceci nous aurait permis drsquoavoir la meilleure dynamique du moteur La conseacutequence de ce type de fonctionnement aurait eacuteteacute un eacutechauffement excessif et un vieillissement preacutematureacute du moteur Donc les risques de casse auraient eacuteteacute multiplieacutes

Suite agrave un incident durant les phases de tests un des moteurs crsquoest vu endommageacutes crsquoest pourquoi il agrave fallu dimensionner drsquoautres moteursNous avons donc repris nos calculs avec un nouveau rapport de reacuteduction ce qui nous donne les reacutesultats suivants

Nous avons donc rechercheacute un moteur qui aurait pu avoir ses caracteacuteristiques agrave savoir - Couple nominal 34 mNm- Vitesse nominale 3342 trmin- Puissance nominale 16 W- Alimentation 24V- Reacuteducteur 1 14

Ce qui nous donnerait en sortie de reacuteducteur - Couple nominal 033 Nm- Vitesse nominale 239 trmin

Nous avons eu beaucoup de mal agrave trouver un moteur qui reacuteponde agrave ses exigences de maniegravere preacutecise et qui ait des caracteacuteristiques geacuteomeacutetriques compatibles avec les speacutecifications meacutecaniques Ces speacutecifications meacutecaniques eacutetant contraignantes compte tenu de la strateacutegie envisageacutee

Crsquoest pourquoi nous avons seacutelectionneacute un moteur un peu surdimensionneacute pour notre application toutefois cela va dans le bon sens comme nous sommes obligeacutes de mettre un renvoi drsquoangle ce qui va augmenter les pertes et lrsquoinertie Donc ce surdimensionnement devrait palier aux impreacutevus et combler nos neacutegligences

c Choix possibles

Gracircce aux informations qui preacutecegravedent on a pu choisir 3 Reacutefeacuterences bull Un motoreacuteducteur de chez MDP-Motor avec une vitesse en charge de 309 trmin-1 et

un couple de 057 Nm reacutefeacuterence AMAX32GHPPLG42S prix unitaire TTC 310 euro (avec -20 en tant que participant agrave la Coupe) disponibles sous 12 semaines longueur sans arbre de 142 mm

bull Un motoreacuteducteur de chez MDP-Motor avec une vitesse en charge de 559 trmin-1 et un couple de 060 Nm reacutefeacuterence RE035GPLG52 prix unitaire TTC 337 euro (avec -20 en tant que participant agrave la Coupe) disponibles de suite longueur sans arbre de 144 mm

bull Un motoreacuteducteur de chez Faulhaber avec une puissance de 45 W reacutefeacuterences moteur 2657 reacuteducteur seacuterie 26 Rr =14) prix unitaire TTC 507 euro disponibles de suite longueur sans arbre 125 mm

Voir en annexes pour les caracteacuteristiques de ces reacutefeacuterencesAux vues des longueurs obtenues il nous est rapidement apparu qursquoune transmission

directe Motoreacuteducteur Roue nrsquoeacutetait pas envisageable du fait drsquoune longueur totale minimum de (125 + 30) 2 = 310 mm avec 125 la longueur drsquoun motoreacuteducteur 30 la largeur estimeacutee drsquoune roue Nous avons donc opteacute pour une solution agrave renvoi drsquoangle

d Choix deacutefinitif

Gracircce aux caracteacuteristiques preacuteceacutedentes nous avons choisi les RE035GPLG52 du fait de leurs disponibiliteacute caracteacuteristiques et prix En ce qui concerne la transmission par renvoi drsquoangle nous avons opteacute pour des systegravemes deacutejagrave tout fait qui permettent une plus grande preacutecision un meilleur rendement et un meilleur rapport qualiteacute prix que les montages artisanaux Voici la reacutefeacuterence que nous avons retenue

bull Reacutefeacuterence 748-437 chez Radiospares ou B332312 chez HPCeurope avec les caracteacuteristiques suivantes Rr = 1 C max = 068 Nm V max = 1500 trmin-1 η = 094 prix RS 5750 euro piegravece et prix HPC 52 euro piegravece (avec -10 en tant que participant agrave la Coupe) (Voir les autres caracteacuteristiques en annexes)Pour des raisons de disponibiliteacute nous avons commandeacute ces 2 piegraveces chez

Radiospares En ce qui concerne la liaison entre lrsquoarbre moteur et lrsquoarbre de la transmission nous

avons deacutecideacute drsquousiner un accouplement rigide dont les plans se trouvent en annexes Du coteacute moteur le blocage en rotation est assureacute par une vis de pression qui se trouve dans la gorge preacutevue initialement pour la clavette De lrsquoautre coteacute nous avons usineacute un meacuteplat sur lrsquoarbre du reacuteducteur meacuteplat sur lequel vient appuyer une autre vis de pression

3 Les supports des moteurs

A lrsquoorigine nous avions penseacute mettre les moteurs et les roues coaxiaux nous avions donc imagineacute un systegraveme de bride qui permettrait de bloquer le moteur selon 2 axes de translation et 2 axes de rotation gracircce agrave 2 vis de serrage associeacutee agrave une eacutequerre qui permettait le blocage selon le dernier axe de translation et de rotation Le tout eacutetait fixeacute sur une plaque de fond qui constituerait la base du robot

Voici donc a quoi ressembler cette bride (pour un moteur)

Bride de maintien pour moteur de faible longueur

Bride monteacutee sur la plaque de fond avec un moteur

Ensuite lorsque nous sommes passeacutes agrave la solution avec renvoi drsquoangle nous avons deacutecideacute drsquousiner une piegravece certes complexe mais qui proposait une universaliteacute notamment au niveau des diffeacuterentes positions des moteurs (verticale et horizontale) aspect qui satisfait pleinement au cahier des charges Cette piegravece que par la suite nous appellerons Bloc Moteur doit permettre la mise et le maintien en position du motoreacuteducteur la mise et le maintien en position du reacuteducteur la fixation de lrsquoensemble au sein du robot notamment sur la plaque de fond

Apregraves une petite eacutetude nous sommes arriveacutes agrave une piegravece de ce type

Bloc moteur pour la solution avec renvoi dangle

Cette nouvelle piegravece agrave de nombreux avantages

bull Elle nous permet de pouvoir incorporer le renvoi drsquoangle bull De maintenir les piegraveces entre-elles et de limiter les efforts directs sur les

diffeacuterents eacuteleacutementsbull Drsquoecirctre installeacute agrave lrsquohorizontale ou agrave la verticale

Effectivement lors de la conception du bloc moteur nous avons penseacute aux anneacutees futures et nous avons donc preacutevu un montage des moteurs agrave la verticale ou agrave lrsquohorizontale

En position verticale

En position horizontale

4 Les roues

Comme vu lors de la veille technologique les chenilles ont quasiment disparu de la compeacutetition Ceci est ducirc au fait que cette technologie est difficile agrave mettre en œuvre et que les regraveglements proposent des aires de jeux totalement planes

Or cette anneacutee un fosseacute fait son apparition dans le regraveglement Ce fosseacute de 36 mm de profondeur vient seacuteparer deux aires de jeu Une neacutecessiteacute de traverser le fosseacute apparaicirct donc pour aller renverser les quilles de lrsquoadversaire

Deux solutions sont alors possibles bull Traverser sur le pont aleacuteatoirebull Traverser le fosseacute

Si nous choisissons de traverser par le pont lrsquoideacutee de garder notre systegraveme de roues est correcte par contre un systegraveme agrave chenille permettrait de passer par le fosseacute

Apregraves reacuteflexion de lrsquoeacutequipe PR et des membres de la Coupe E=M6 la solution de traverser par le pont est retenue Ce qui nous a conduit tout droit vers la solution agrave roues

Les roues utiliseacutees sont des roues de roller de diamegravetre 80mm et drsquoune largeur de 22mm Ces roues sont relieacutees agrave lrsquoarbre drsquoun renvoi drsquoangle par lrsquointermeacutediaire drsquoun accouplement en aluminium

5 La base

Pour la base du robot il nous a parut indispensable de dimensionner la plaque de fond en eacutepaisseur De plus afin de maintenir la solution de modulariteacute de lrsquoensemble moteurs ndash roues nous avons deacutecideacute de fixer les deux supports moteurs sur un platine qui sera elle-mecircme fixeacutee agrave la plaque de fond du robot

Premiegraverement nous avons effectueacute un dimensionnement succinct de la platine

a Reacuteaction drsquoappui

0=sum Fx OK

0=sum Fy qLRbRaorRbRaqL210 =+=++minus

qLRa21=

AB = 027 m = L

P = mg P = 15 x 10 = 150 N

Q = 150 N270 mm soit q = 555 Nm

Bille folle

Accouplement

Bloc moteur

Renvoi drsquoangle

Platine

Base du robot

Motoreacuteducteur

Roue

b Moment de flexion

0 =sum= cMMf

02

sup2 =minus+ RaxqxMf

sup221

21 qxqLxMf minus=

c Flegraveche

)( xMfEIY =

sup221

21 qxqLxEIY minus=

161sup2

41 3 CqxqLxEIY +minus=

21241

121 43 CxCqxqLxEIY ++minus=

d Conditions aux limites

Y (x=0) = 0 C2 = 0

Y (x=L) = 0 012412

44

=+minus LCqLqL

241

4qLLC =

241

3qLC =

On obtient donc

xqLqxqLxEIY 343

241

241

121 +minus=

De mecircme

+minus=

242412

343 xLxLxEIqY

On sait que bull E = 210 000 10^6bull Y = 1 10^-3 mbull Q = 555 Nmbull L = 027 m

bull12

3bhI = b = 006 m

+

minus

=24

22416

128

343 LL

LLL

EYqI

36

4

0010102100000601052155512timestimes

timestimes=minus

h

Et enfin on trouve h lrsquoeacutepaisseur de la platine h= 43 mm

Apregraves reacuteflexion nous nous sommes rendu compte que ce calcul nrsquoeacutetait pas rigoureux car nous avons consideacutereacute la theacuteorie des poutres or dans notre cas nous ne pouvons satisfaire cette theacuteorie (Longueur de la section = 10 x la largeur de la section)

Il nous faut donc utiliser un modegravele plus preacutecis crsquoest pourquoi nous avons deacutecideacute de faire un calcul par eacuteleacutements finis sous Ideacuteas Ainsi nous trouvons une eacutepaisseur h = 32 mm

Il nous faut donc une platine de plus de 3 mm Etant donneacute que la platine sera solidairement fixeacutee agrave la base du robot nous avons deacutecideacute de prendre une eacutepaisseur de platine de 2 mm et une eacutepaisseur de base de robot de 2 mm Nous obtenons donc une eacutepaisseur totale de 4 mm Ainsi nous devrions avoir sous une charge de 15 kg moins drsquoun millimegravetre de flexion de la base du robot

6 Reacutesultats

Assemblage en position horizontale

Vue eacuteclateacutee en position verticale

Photo de lrsquoassemblage roues ndash blocs moteurs ndash moteurs ndash platine

Partie C Lrsquoeacutelectronique20 Les batteries

Afin de pouvoir choisir les batteries approprieacutees agrave notre application nous devons dans un premier temps faire une estimation de la consommation drsquoeacutenergie totale avec les pointes de courant envisageacutees dans notre robotIl est agrave noter que nous ne connaissons pas encore en deacutetail tous les eacuteleacutements annexes qui seront implanteacutes dans le robot comme par exemple les capteurs et actionneurs diverses qui seront choisis en fonction des objectifs technologiques atteints ou non de lrsquoassociation et de la strateacutegie finaleDans le but de pouvoir utiliser agrave nouveau dans lrsquoavenir notre base roulante nous avons choisi de surestimer les besoins en eacutenergie de sorte agrave ne pas ecirctre pris au deacutepourvu

La consommation pourrait se deacutecomposer ainsi - 2 moteurs de 24V sous 21A soit 1008 Watts pendant 100 du temps- 3 actionneurs de 21 Watts chacun soit 63 Watts pendant 50 du temps- 3A pour lrsquoeacutelectronique sous 5V soit 15 Watts pendant 100 du temps (Asservissement carte de commandes capteurs)

Ce qui nous fait au total une consommation maximale ~180 WattsLa consommation permanente devrait ecirctre ~147 Watts permanents il faut donc que les batteries puissent deacutebiter un courant de ~6 A sous 24 V durant le fonctionnement du robot

Apregraves une longue recherche on a pu reacutealiser le tableau comparatif des batteries suivant

typeDensiteacute

deacutenergie (WhKg)

Densiteacute deacutenergie (WhL)

auto-deacutecharge (mois)

voltage dune cellule (V)

temps de charge rapide

plomb 35 111 5 agrave 10 2 8h agrave 15h

NiCd (Nickel Cadnium) 50 94 10 agrave 20 12 1h30min

NiMH (Nickel Metal Hydride) 80 135 20 agrave 30 13 2h agrave 4h

Lithium Ion 100 196 5 agrave 10 36 2h agrave 4h

Lithium polymer 150 200 5 agrave 10 36 2h agrave 4h

AlKaline rechargeable 80 15 2h agrave 3h

type

cycle de charge-deacutecharge avant

que capaciteacute passe de 100 agrave

80

Courant max Courant max pic effet meacutemoire estimation

(euroWh) prixcycles

plomb 200 agrave 300 02C 05C M 0895 0003

NiCd (Nickel Cadnium) 1500 1C 20C H 416 0003

NiMH (Nickel Metal Hydride) 300 agrave 500 05C 5C L 2 0004

Lithium Ion 500 agrave 1000 1C 2C L 8 0008

Lithium polymer 300 agrave 500 1C 2C agrave 5C L 32 0006

AlKaline rechargeable 50 02C 05C H 178 0036

Effet meacutemoire L (Low) M (Medium) H (High)Courant max C signifie capaciteacute par exemple une batterie qui peut deacutelivrer un courant max de 1C de 4Ah pourra donc deacutelivrer 4A au maximum sans risque de deacuteteacuterioration

Nous nous sommes inteacuteresseacutes au courant maximum et au temps de charge rapide pour notre choix de batteriesLe type de batterie qui semble le plus approprieacute pour nous est le type Nickel-Cadnium parfaitement adapteacute au pic drsquoappel de courant que provoquent des moteurs pouvant supporter des charges rapides en 1h30min seulement afin de devoir preacutevoir trop de jeux de batteries diffeacuterents

Les batteries LI-Ion ou LI-Polymer preacutesentent une densiteacute eacutenergeacutetique tregraves inteacuteressante mais leur prix est beaucoup plus eacuteleveacute agrave lrsquoachat et de plus dans notre application roulant sur un sol peu accidenteacute la masse pouvant ecirctre transporteacutee est suffisante pour le type NiCd

Les batteries LI-Ion ou LI-Polymer sont plus adapteacutees agrave lrsquoaeacuteromodeacutelisme ou au petit appareil eacutelectroniqueQuant aux batteries au plomb qui sont vraiment bon marcheacute le courant maximum supporteacute est trop faible est supposerait drsquoavoir une forte capaciteacute

Nous voulons avoir une autonomie de 30 minutes il nous faut donc une eacutenergie de 735 WhOr sous 24 V les batteries doivent avoir une capaciteacute de ~3 AhComme les batteries NiCd peuvent deacutebiter un courant maximum de 1C (une fois leur capaciteacute) nous devons donc prendre des batteries de 6Ah sous 24 V ce qui nous donnera une autonomie de 1 heure

Il faudra donc soit acheter un bloc accumulateur NiCd de 24 V 6 Ah srsquoil existe dans le commerce soit le reacutealiser nous mecircme en assemblant diffeacuterents eacuteleacutements

Rappelons que lrsquoassociation en seacuterie permet drsquoadditionner les tensions des eacuteleacutements associeacutes et que lrsquoassociation en parallegravele permet drsquoadditionner les courants deacutebiteacutes

Par exemple des eacuteleacutements de 12 V chacun pour 3 Ah srsquoassocieraient ainsi

Soit deux seacuteries de 20 eacuteleacutements eacutequivalentes agrave 24 V et faisant une capaciteacute de 3 Ah chacune

Il est possible de reacutepartir les accumulateurs en diffeacuterents paquets pour faciliter le rangement dans le robot ou reacutepartir la masse ou eacuteventuellement trouver des packs dans le commerce

Dans le cas de lrsquoUV PR le choix des batteries reste pour le moment sur les NiCd mais pour les essais pratiques on utilisera des batteries au plomb que lrsquoon possegravede deacutejagrave drsquoautant plus que les essais sont reacutealiseacutes avec les moteurs de propulsion et lrsquoasservissement seul ce qui

neacutecessite un deacutebit de courant de 24105 = 4375 A sur 2 batteries soit asymp2187 A

Comme les batteries au plomb peuvent deacutebiter 02C il nous en faudrait des de asymp 109 Ah

Or les essais de la base roulante ne seront que de courtes dureacutees et lrsquoon se contentera donc drsquoutiliser des batteries de 6 Ah pour des raisons de volume mecircme si elles ne sont pas vraiment bien dimensionneacutees

21 La commande des moteurs

Dans un premier temps nous verrons un bref reacutecapitulatif des cartes et modules drsquoasservissement du commerce

Pour la commande les moteurs plusieurs solutions ont eacuteteacute envisageacutees - Un asservissement lsquotout faitrsquo analogique modules laquo Escap raquo- Une solution lsquoartisanalersquo carte avec asservissement numeacuterique- Un asservissement lsquotout faitrsquo numeacuterique circuits laquo LM629 raquo

a Comparatifs des modules drsquoasservissement et calcul des correcteurs

Veille technologique sur les systegravemes drsquoasservissement utiliseacutes par les diffeacuterentes eacutecoles de la coupe E= M6

Le but de cette partie est drsquoeacutetudier les principales techniques drsquoasservissement utiliseacutees par les eacutecoles de la Coupe E=M6 Ce document est loin drsquoecirctre exhaustif et servira de base agrave compleacuteter et actualiser pour les semestres et eacutequipes prochaines

Apregraves une eacutetude sur plus drsquoune trentaine drsquoeacutecoles il ressort trois formes drsquoasservissement la plus utiliseacutee agrave 85 est du type PID en majoriteacute reacuteduit au PI ensuite viennent les microcontrocircleurs PIC associeacutes au PID et les modules AVR nous allons par la suite deacutetailler ces trois solutions Il existe eacutegalement des systegravemes de controcircle dits agrave retour drsquoeacutetat jamais utiliseacutes jusqursquoagrave preacutesent pour la Coupe crsquoest pourquoi nous ne deacutevelopperons pas son approche

3 Systegraveme PID

httpwwwancrorgfichtechactionpidindexhtm

a Principe

Pour pouvoir tester un asservissement il faut dabord reacutealiser une plate-forme de deacuteveloppement le plus geacuteneacuteralement du type suivant Mais pour commencer un brin de theacuteorie illustreacute par des exemples Le scheacutema de principe est repreacutesenteacute ci-dessous

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

Nous avons bien un scheacutema en boucle fermeacutee puisque la sortie du systegraveme est reacuteinjecteacutee dans lentreacutee Les trois blocs bleus correspondent chacun agrave une fonctionnaliteacute Ki est le coefficient inteacutegral Kp le coefficient proportionnel et Kd le coefficient deacuteriveacute Chacun de ces coefficients a une fonctionnaliteacute bien preacutecise Commenccedilons par le plus simple le proportionnel

b Asservissement P

Lasservissement proportionnel est essentiel au fonctionnement du PID Il permet essentiellement de donner de la puissance au moteur Voici quelques reacutesultats dexpeacuterimentations avec Ki=0 et Kd=0

La courbe noire repreacutesente la consigne que lon deacutesire atteindre (Ud) cest un eacutechelon de valeur 32 La courbe bleue repreacutesente la vitesse reacuteelle du systegraveme (Y) Comme vous pouvez le constater plus Kp est grand plus le systegraveme converge vite vers sa valeur finale Mais en contrepartie pour des valeurs de Kp trop grandes le systegraveme oscille Mais lagrave nest pas notre plus gros problegraveme en effet sur ces courbes on voit nettement que la vitesse du moteur natteint jamais la vitesse deacutesireacutee Cest ce que lon appelle lerreur statique elle correspond agrave la diffeacuterence entre la vitesse reacuteelle et la vitesse deacutesireacutee en reacutegime eacutetablie (une fois que le systegraveme sest stabiliseacute) Pour compenser cette erreur statique on rajoute le terme inteacutegral

c Asservissement PI

Le correcteur inteacutegral sert principalement agrave supprimer lerreur statique Lideacutee principale est de charger ou inteacutegrer lerreur depuis le deacutebut et dajouter cette erreur agrave la consigne jusquagrave ce quelle devienne nulle Lorsque cette erreur est nulle le terme inteacutegral se stabilise et il compense parfaitement lerreur entre la consigne et la vitesse reacuteelle Deacutemonstration en image

On voit cette fois-ci que le terme inteacutegral a bien fonctionneacute et que lerreur statique est nulle On constate aussi que plus le gain Ki est grand plus le systegraveme converge vite En revanche plus Ki est grand plus le systegraveme oscille et plus le deacutepassement est grand Sur des asservissements en position le terme deacuteriveacute permet de diminuer le deacutepassement et les oscillations Nous allons voir que dans notre cas nous avons quelques problegravemes

d Asservissement PID ou agrave avance de phase

On a donc rajouteacute le terme deacuteriveacute comme tout bon livre dautomatique le preacuteconise et voici les reacutesultats

Cette fois ci jai choisi de repreacutesenter la tension appliqueacutee au moteur (U) le problegraveme est bien plus flagrant ici Vous voyez que lorsque lon ajoute le terme deacuteriveacute la commande est extrecircmement bruiteacutee En reacutealiteacute on somme agrave la commande la deacuteriveacutee de la vitesse reacuteelle que lon multiplie par un gain Kd La deacuteriveacutee dune vitesse est une acceacuteleacuteration cela signifie que lon amplifie tous les bruits dacceacuteleacuteration et en plus on les multiplient par un gain Kd Donc rajoute du bruit amplifieacute dans la commande Alors pourquoi mettent t-ils ce terme deacuteriveacutee dans les livres Simplement parce que ce bruit est typique des asservissement en vitesse Sur des asservissements en position ce problegraveme est moins freacutequent car la deacuteriveacutee de la position est la vitesse

Ici le problegraveme eacutetait visible parce que nous avons reacutealiseacute toutes ces courbes sur un systegraveme reacuteel Si nous avions simuleacute ces reacutesultats lacceacuteleacuteration naurait pas eacuteteacute bruiteacutee et les courbes auraient eacuteteacute parfaites Pour impleacutementer ce PID sur notre robot il a fallu programmer en numeacuterique une deacuteriveacutee et une inteacutegrale

e PID numeacuterique et reacuteglage

Notre premier problegraveme est de programmer le terme inteacutegral Il existe une meacutethode qui consiste agrave estimer la surface entre deux eacutechantillons mais dans notre cas nous avons des problegravemes dus aux bruits et agrave la freacutequence deacutechantillonnage Alors il faut sommer toutes les erreurs depuis de deacutebut

Notre second problegraveme est de programmer le terme deacuteriveacute La meacutethode ici est de calculer la pente entre deux eacutechantillons de e Theacuteoriquement cela revient agrave faire le calcul suivant

Avec la peacuteriode deacutechantillonnage Pour faire un asservissement numeacuterique il faut impeacuterativement avoir une peacuteriode fixe Pour gagner du temps de calcul geacuteneacuteralement on inteacutegre directement dans le gain Kd

Voici un lalgorithme exemple

Ti = 0 Initialise le terme inteacutegral

for ( i=1 i lt= Nb_cycles i++ )

Init_timers (1) Initialise le timer agrave notre peacuteriode 1 ms

Y = Codeur () Stoque la valeur du codeur dans Y Rst_codeur () Remet le codeur agrave zeacutero Ud = Consigne () Mise agrave jour de la consigne e_old=e Stoque e(t-1) e = Ud - Y Calcul de lerreur Ti = Ti + e Calcul de linteacutegral Calcul du PID U = Kp e Terme proportionnel

+ Ki Ti Terme inteacutegral + Kd ( e - e_old ) Terme deacuteriveacute Moteur (U) On applique la consigne

while ( end_timer() ) On attend la fin de la peacuteriode

Pour le reacuteglage des gains Kp Ki et Kd il existe diffeacuterentes meacutethodes Ici nous lavons fait de maniegravere empirique et le reacutesultats est plutocirct bon Linconveacutenient de ces meacutethodes est quelles demandent un modegravele du systegraveme ce qui est geacuteneacuteralement dur agrave produire Il existe

aussi des composants programmables qui permettent de faire directement lasservissement numeacuterique (HCTL 1100 LM629) Ils sont exactement baseacutes sur la meacutethode preacutesenteacutee ici

Pour ce qui est du reacuteglage des correcteurs lrsquooptimal est drsquoutiliser la meacutethode de lrsquooptimum dissymeacutetrique une fois que lrsquoon agrave reacutealiseacute le modegravele du systegraveme La plus part des eacutecoles ne reacutealisent pas ce modegravele et ce limite donc agrave une correction empirique en reacutealisant des tests ou en utilisant la meacutethode Ziegler-Nichols agrave partir de la reacuteponse agrave un eacutechelon de tension

Par la suite nous rappellerons les meacutethodes de Ziegler-Nichols et de lrsquooptimum dissymeacutetrique

f Les meacutethodes de Ziegler-Nichols

Ces meacutethodes fournissent des reacuteglages pour des correcteurs de type PID (pouvant ne comporter quune action Proportionnelle une action Proportionnelle et une action Inteacutegrale ou les 3 actions simultaneacutement) dont la structure est la suivante

bull MEacuteTHODE DE ZIEGLER NICHOLS TEMPORELLE

Elle est adapteacutee aux systegravemes stables en boucle ouverte qui ont une reacuteponse apeacuteriodique La reacuteponse agrave un eacutechelon unitaire du systegraveme physique doit ecirctre enregistreacutee Diffeacuterentes caracteacuteristiques de la reacuteponse obtenue sont mesureacutees

Le modegravele approcheacute utiliseacutee par Ziegler Nichols comporte une constante de temps et un retard pur ou bien un retard pur et un inteacutegrateur

Si le systegraveme physique comporte un inteacutegrateur les mesures de a et de L demeurent disponibles sur le deacutebut de la reacuteponse

Les reacuteglages suggeacutereacutes par la meacutethode temporelle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 1a - -correcteur PI 09a 3L -

correcteur PID 12a 2L L2Concernant le raffinement des reacuteglages augmenter Kp ou diminuer Ti augment les

oscillations de la sortie

bull MEacuteTHODE DE ZIEGLER NICHOLS FREacuteQUENTIELLE

Cette meacutethode convient particuliegraverement bien aux systegravemes instables en boucle ouverte pour lesquels la meacutethode temporelle nest pas envisageable Lexpeacuterimentation se fait sur le systegraveme boucleacute avec un simple gain proportionnel qui doit ecirctre stable Le principe est de modifier la valeur du gain par essai-erreur jusquagrave atteindre la limite de stabiliteacute (pheacutenomegravene de pompage) Il reste agrave relever le gain limite K0 obtenu et agrave mesurer la peacuteriode T0 des oscillations de la reacuteponse obtenue

Les reacuteglages suggeacutereacutes par la meacutethode freacutequentielle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 05 K0 - -correcteur PI 045 K0 08 T0 -

correcteur PID 06 K0 05 T0 0125 T0

A la page Internet suivante vous trouverez un simulateur de cette meacutethode

httpwww-hadocensieginpgfrhadocateliersreglageEmpCorrReglEmpCorrDroithtml

g Meacutethode de lrsquooptimum dyssimeacutetique (voir poly MC06 Chap 5 et 8)

Cette meacutethode srsquoapplique une fois le modegravele reacutealiseacute et mis sous la forme drsquoun second ordre

et on obtient le correcteur PI

pour une surtension deacutesireacutee QdB

Q = 10^(QdB20)λ= radic(Qsup2(Qsup2-1))Δφ = arcos (1 λ)α= ((1+sin(Δφ))cos(Δφ))sup2ωN= ωQαω0= ωQradicαKP= ω0 λ KQ

4 Les microcontrocircleurs

a Avant propos

Cette fiche se veut ecirctre sous la forme dun projet Un projet non termineacute ougrave chacun peut apporter sa contribution (ameacuteliorations adaptations corrections etc)De ce fait ces pages sont ameneacutees agrave eacutevoluer et vous-mecircme pourrez participer agrave leur eacutevolution

Pourquoi avoir choisit un tel mode de travail Tout simplement parce que le sujet est vaste et que des variations sont possibles suivant lutilisation quen feront les diffeacuterentes personnes

Le but de ce projet est de reacutealiser une double asservissement de vitesse (type PID) de deux moteurs sur un seul PIC (type 16F877) Lutiliteacute majeure eacutetant de faire rouler un robot bien droit et agrave la bonne vitesse A quoi ccedila sert plus preacuteciseacutement

Avec un seul PIC ce projet permet aux roboticiens amateurs et chevronneacutes de reacutealiser facilement leur asservissement de vitesse de moteurs agrave courant continu (en geacuteneacuteral les moteurs de propulsions de leur robot mais ccedila peut ecirctre bien sucircr dautres moteurs) La commande de lasservissement pourra se faire agrave terme en liaison seacuterie (deacutejagrave fait) I2C ou par bus ISA

b Avantages

Il existe bien sucircr dautres systegravemes qui gegraverent un asservissement de vitesses Des systegravemes professionnels existent comme les LM629 Ils ont linconveacutenient decirctre cher (et ce pour un seul moteur) et relativement complexes

Pourquoi chercher un fusil pour chasser des moustiques Le double asservissement sur PIC vous coucircte le prix dun PIC soit environ 15Euro pour un 16F877 actuellement et ce pour 2 moteurs Ce double asservissement se veut relativement simple De plus vous pouvez en modifier le programme et ladapter agrave vos besoins

c Inconveacutenients

Les personnes qui auront les moyens preacutefeacutererons opter pour un systegraveme professionnel certainement pour des raisons de fiabiliteacute mais cest agrave leurs risques et peacuterils -)La puissance du PIC eacutetant limiteacutee il ne peut pas reacutealiser des PID trop rapides ou trop complexes Il y a en particulier une limitation sur le nombre dimpulsions par seconde quil est capable de geacuterer

Le langage utiliseacute eacutetant le C il faut une licence du logiciel pour pouvoir modifier et recompiler le code source c Mais le projet se veut geacuteneacuterique Une version donneacutee pourra ecirctre utiliseacute sans recompilation en respectant quelques contraintes

d Asservissement

En fait on pourrait imaginer quil suffirait denvoyer au moteur une puissance constante pour quil tourne tout le temps agrave la mecircme vitesse Ce nest pas vrai du tout Tout dabord 2 moteurs dune mecircme seacuterie nauront pas forceacutement le mecircme comportement Ensuite parce que les niveaux de tension ou dautre diffeacuterences eacutelectriques peuvent jouer Enfin parce que des influences exteacuterieures (obstacles frein meacutecanique du robot) peuvent jouer

Du coup il est tregraves difficile de faire aller un moteur agrave la vitesse voulue Parfois ce nest pas gecircnant mais ccedila peut lecirctre Un exemple classique est le robot avec 2 roues motrices type char une configuration qui est tregraves courante Mais pour que ce robot aille droit il faut que les 2 moteurs aillent exactement agrave la mecircme vitesse

La solution est de faire un asservissement Cest a dire moduler dynamiquement la puissance envoyeacute aux moteurs suivant leur vitesse mesureacutee afin dadapter celle-ci agrave ce qui est deacutesireacuteeCela implique un eacuteleacutement tregraves important pour asservir il faut un capteur de vitesse du moteur En geacuteneacuteral il sagit dun compte-tour qui enverra N impulsions (ou pas) par tour de moteur Ensuite un programme va calculer en fonction de la vitesse mesureacutee du moteur la puissance agrave utiliser

Les asservissements sont constamment en train de chercher leacutequilibre Il faut bien comprendre quils mettent un certain temps agrave latteindre et ce dernier peut aussi ecirctre instable si lasservissement est mal reacutegleacute

Lasservissement quon va utiliser ici est un classique PIDou plus preacuteciseacutement un PI car pour des raisons de vitesses de traitement la composante deacuteriveacutee est laisseacutee de coteacute (mais rien de difficile agrave rajouter)

Le PID ou Proportionnel Inteacutegrale Deacuteriveacute est une meacutethode de calcul dasservissement

Soit Kp Ki et Kd les coefficients proportionnels inteacutegrale et deacuteriveacuteSoit e lerreur Vitesse mesureacutee moins vitesse demandeacuteeSoit Ti le terme inteacutegral dabord initialiseacute agrave 0

Consigne a appliquer (PWM) = Kp e + (1Ki) (Ti += e) + Kd (e - e(t-1))

On pourrait dire des pages et des pages sur le PID et ce nest pas mon but ici Merci de vous reporter au lien ci-dessous

Pour plus de deacutetails sur le PID la page de lANCR httpwwwancrorgfichtechactionpidindexhtmChez les Fribottes la Simulation de Jean-Claude httpwwwwikifreefrWiKiFriindexphpSimulateur20de20PID

e Le pic

Le PIC est un petit microcontrocircleur assez bon marche et simple a programmer comme a utiliser

La aussi je vais pas rentrer dans les deacutetails vous pouvez vous reporter agrave la bdtech du site Fribotte et en particulier aux cours de Bigonoff

Le PIC est ici programmeacute en C voir la page Fribotte ici Lutilisation du langage C permet dalleacuteger consideacuterablement le deacuteveloppement dune application compliqueacutee

2 Module AVR

httpwwwenseirbfr~matzfravrphp

Tregraves peu de renseignement sur ce module sinon ces informations drsquoun eacutetudiant de lrsquoEnseirb

Depuis plusieurs anneacutees je participe agrave la coupe de robotique E=M6 dont lobjectif pour chaque eacutequipe est de fabriquer un robot autonome devant se conformer agrave un regraveglement Pour plus dinfos vous pouvez vous rendre sur le site de mon eacutequipe Microb Technology ou bien sur le site de Planegravete Sciences lorganisme beacuteneacutevole qui organise cette compeacutetition

Jai deacutecouvert en 2001 les microcontrocircleurs Atmel AVR auxquels je me suis beaucoup attacheacute dune part parce quils sont assez performants pour des microcontrocircleurs 8 bits mais aussi et surtout car le fameux compilateur libre GCC est capable de compiler du code C pour ces petites becirctes Il existe de surcroicirct plusieurs outils libres permettant de les programmer de les simuler etc

Le but de ce projet est donc de deacutevelopper des modules servant dinterface geacuteneacuterique avec le hardware du microcontrocircleur quel que soit la version (par exemple les UART inclus dans les AVR AtMega sont diffeacuterents de ceux preacutesents dans les petits AVR) et de deacutevelopper des modules utiles pour certaines utilisations usuelles et pas seulement pour la coupe E=M6 (codage de hamming asservissement chiffrement etc)

Vous pouvez contacter leacutequipe de deacuteveloppement agrave avr-devdroids-corporg Pour le moment aucune release na eacuteteacute faite mais le travail est deacutejagrave bien avanceacute Chaque soir un screenshot du CVS est reacutealiseacute Il peut ne pas compiler mais normalement ccedila devrait fonctionner Voici le lien

3 Modules drsquoasservissement analogique laquo Escap raquo

Nous avons essayeacute de reacutecupeacuterer les cartes de commande Escap pour moteurs Escap qui avaient eacuteteacute utiliseacutees en 96 et 98 avec succegraves

Nous les avons monteacutes sur une base roulante qui pesait en tout 74 kgVoici grosso-modo leurs avantages et leurs inconveacutenients (pour les notices techniques voir le rapport 96 ou 98)

a Avantages

Cette carte inclut directement un asservissement avec correcteur PI la commande de puissance les ponts en H

Elle est tregraves facile agrave utiliser Elle est speacutecialement conccedilue pour les moteurs Escap que nous avons donc

parfaitement adapteacutee

b Inconveacutenients

Les moteurs ne fonctionnent correctement que sous 24v Les cartes et les moteurs semblent assez gourment Les cartes nantis de gros radiateurs sont relativement encombrantes Les tachymegravetres monteacutes sur les moteurs ne donnent pas une indication de position

mais de vitesse (qui plus est en analogique)

Nous avons preacutefeacutereacute refaire la partie commande car celle de 1996 souffrait de quelques deacutefauts (cf rapport 1996)

La conversion numeacuterique analogique

Pour reacutealiser la conversion numeacuterique analogique nous avons choisit un pont agrave reacutesistance R-2R

Nous pouvons consideacuterer que chaque bit est relieacute agrave un geacuteneacuterateur ideacuteal de tension (qui deacutelivre 0v ou 5v) Par conseacutequent la reacutesistance eacutequivalente quelque soit lrsquoeacutetat des bits et quelques soit le nombre de bits vue entre la sortie et la masse sera eacutegal agrave R

La tension Vs en fonction de lrsquoeacutetat des bits sera

Ce type de CAN eacutetant tregraves classique nous nrsquoindiquerons pas les deacutemonstrations toutefois vous pourrez les trouver tregraves facilement sur Internet ou sur le Cd-rom drsquoannexes joint au dossier

Le montage de Thevenin eacutequivalent est donc

Nous avons jugeacute qursquoune discreacutetisation sur 8 bits eacutetait un peu superflu crsquoest pourquoi nous nous contenterons de 4 bits (ce qui repreacutesentent quand mecircme 16 niveaux de vitesse)

bull Lrsquoadaptation du niveau de tension

Nous avons agrave la sortie du CAN une tension qui srsquoeacutetend de 0 agrave 5v or la commande des cartes Escap ce fait entre -5v et +5v

On peut voir cette adaptation comme lrsquoajout drsquoun offset de -25v et une amplification de gain 2

Voici le montage reacutealisant cette conversion

M1 est un montage suiveur qui lsquorecopiersquo la tension aux bornes de P1 mais sous une impeacutedance constante et eacutegale agrave 4R En 1996 lrsquoeacutequipe avait brancheacute P1 directement sur M3 mais cela a pour inconveacutenient de faire varier agrave la fois lrsquooffset et la penteLe potentiomegravetre P1 permet drsquoajuster lrsquooffset (permet par conseacutequent de reacutegler lrsquoarrecirct complet de moteur) (La valeur theacuteorique de lrsquooffset est 5V (cf formule en M3))

M2 est aussi un montage suiveur Le potentiomegravetre P2 permet drsquoajuster la pente (qui doit avoir un coefficient directeur de 2) Comme M2 est connecteacute au CAN dont la reacutesistance interne est de R P2 doit ecirctre a peut precirct eacutegal agrave R de la sorte la branche aura une reacutesistance eacutequivalente de 2R

M3 Sommateur (Vs = - 2 (Ve + Voffset))

Qursquoelle valeur choisir pour R

Theacuteoriquement on peut choisir nrsquoimporte quelle valeur pour R mais en pratique si R est trop petite une intensiteacute importante serait consommeacutee sans raison et si R est trop grande la forte impeacutedance du montage le rendra tregraves sensible aux parasites (secteur moteurshellip)Ce montage a eacuteteacute testeacute et fonctionne correctement pour R=5k les amplificateurs opeacuterationnels utiliseacutes sont des LM324 mais drsquoautres seraient tout agrave fait envisageables (peu de contraintes de vitesse et de tensions de deacutechets)

4 Conclusion

Nous avons preacutefeacutereacute ne pas utiliser les cartes Escap car les moteurs ne renvoient pas une position sous forme drsquoimpulsion mais une vitesse Etant donneacute que nous avions envisageacute un repeacuterage par odomeacutetrie cela compliquait consideacuterablement la tache

Toutefois il faut savoir que cette solution a eacuteteacute testeacutee et fonctionne tregraves bien (bonne preacutecision bonne dynamique) ainsi dans le cas ougrave le repeacuterage ne se fait pas par odomeacutetrie mais des balises exteacuterieures sachez que cette solution est tregraves pratique agrave utiliser En effet pour imposer une vitesse il suffit au microcontrocircleur drsquoappliquer sur un port un mot binaire correspondant agrave la vitesse voulue hellip et crsquoest tout La carte Escap se charge du reste

5 Carte drsquoasservissement numeacuterique laquo artisanale raquo

La carte reacutealiseacutee baseacutee sur un microcontrocircleur PIC 16F877A srsquoest aveacutereacutee fonctionnelle mais les tests drsquoalgorithmes drsquoasservissement nrsquoont pas eacuteteacute effectueacutesEn effet lrsquoutilisation de cette solution neacutecessite un microcontrocircleur deacutedieacute agrave lrsquoasservissement capable de communiquer via un protocole agrave deacutefinir avec la laquo carte megravere raquo (centralisant les retours des autres capteurs du robot et agissant sur les diffeacuterents actionneurs en fonction de la strateacutegie)Or afin de limiter le nombre de microcontrocircleurs sur le robot et du fait que lrsquoon dispose drsquoun budget suffisant nous avons deacutecideacute drsquoessayer drsquoutiliser des composants speacuteciaux reacutealisant lrsquoasservissement

Le systegraveme se deacutecompose en

- Un microcontrocircleur pour appliquer la PWM asservir et commander- Une carte de puissance pour chaque moteur baseacutee sur un LMD18200- Une carte compteur drsquoimpulsions pour les codeurs

Afin de favoriser lrsquointeractiviteacute et les reacuteglages jrsquoai ajouteacute une carte afficheur LCD avec 6 boutons sur la carte microcontrocircleur

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 4: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

UV PR Reacutealisation drsquoune base roulanteA04

CONCLUSION page 64REMERCIEMENTS page 64

ANNEXES page 65

Page 4

UV PR Reacutealisation drsquoune base roulanteA04

Preacutesentation1 La coupe E=M6

La Coupe de France de Robotique est une compeacutetition au cours de laquelle viennent srsquoaffronter les grandes eacutecoles et universiteacutes franccedilaises Elle est organiseacutee par la chaicircne de teacuteleacutevision nationale M6 et lrsquoAssociation Planegravete Sciences Cette compeacutetition se deacuteroule chaque anneacutee au mois de mai sur le site de la Ferteacute Bernard agrave lrsquooccasion du festival laquo Arts et Technologie raquo plus connu sous le nom de ARTEC

Le deacutefi proposeacute par la Coupe consiste agrave concevoir et fabriquer un robot mobile totalement autonome agrave partir drsquoun sujet imposeacute par les organisateurs de la coupe et preacutesenteacute au mois de septembre

LrsquoUTC participe agrave cette compeacutetition depuis 1996 ougrave un groupe drsquoeacutetudiants motiveacutes srsquoeacutetait constitueacute de lui-mecircme pour participer agrave ce challengeAujourdrsquohui notre force est de profiter de lrsquoenseignement des anciens participants et du savoir-faire acquis

Lrsquoensemble des personnes impliqueacutees est vraiment deacutetermineacute agrave atteindre des objectifs preacutecis ameacuteliorer nos performances et eacuteliminer nos faiblesses deacutejagrave pour acceacuteder agrave la phase finale et peut-ecirctre remporter la victoire Il y a aussi la volonteacute de repreacutesenter notre eacutecole dans une compeacutetition dont les retombeacutees meacutediatiques sont de plus en plus importantes et de la faire jouer dans la mecircme cour que les plus ceacutelegravebres eacutecoles franccedilaises Par ailleurs notre eacutequipe srsquoest classeacutee 12egraveme en 2002 (sur 190 eacutequipes seacutelectionneacutees) lrsquoexpeacuterience des participations preacuteceacutedentes ayant eacuteteacute systeacutematiquement mise agrave profit

Cette activiteacute inclut eacutegalement un aspect formateur agrave ne pas neacutegliger Pour mener agrave bien ce projet il est neacutecessaire de faire les meilleurs choix dans les deacutelais les plus brefs de reacuteagir vite et de travailler efficacement Par ailleurs ce projet possegravede un aspect pratique important pour des eacutetudiants ayant des connaissances plutocirct theacuteoriques laquo mettre la main agrave la pacircte raquo permet drsquoapprendre ce qursquoimplique drsquoavoir agrave commander une piegravece ou de la fabriquer drsquoutiliser un tournevis de tenir un fer agrave souder parcourir une documentation ou encore de deacuteceler lorigine dune panne

De plus ce challenge technique et humain nous permet drsquoune part de mettre en pratique nos connaissances scientifiques agrave travers une reacutealisation concregravete et drsquoautre part drsquoacqueacuterir une certaine expeacuterience dans le travail en eacutequipe affilieacute agrave un projet complet au travers de toutes les disciplines impliqueacutees (management comptabiliteacute communication strateacutegies meacutecanique eacutelectronique informatiquehellip)

Page 5

UV PR Reacutealisation drsquoune base roulanteA04

2 La Coupe de France de Robotique 2005

Cette anneacutee les robots jouent au bowling

Chaque eacutequipe doit construire un ou deux robots entiegraverement autonomes Les matchs se jouent entre deux eacutequipes et durent 1 minute 30

Une couleur de quilles est attribueacutee agrave chaque eacutequipe Sur le terrain 15 quilles de chaque couleur sont disposeacutees aleacuteatoirement Au deacutepart celles-ci se trouvent de lrsquoautre cocircteacute drsquoun fosseacute dans le camp adverse Des ponts permettent de rejoindre lrsquoautre cocircteacute mais ceux-ci sont placeacutes aleacuteatoirement en deacutebut de partie Il est eacutegalement possible drsquoutiliser des balles de type laquo balle de squash raquo pour faire du tir balistique et ainsi espeacuterer faire tomber des quilles agrave distance

Pour gagner la partie les robots doivent renverser le plus de quilles possible Les robots peuvent aussi relever les quilles de la couleur adverse renverseacutees par lrsquoautre eacutequipe

Lrsquoeacutequipe qui a le plus de quilles de sa couleur renverseacutees en fin de match est deacuteclareacutee vainqueur

Illustration de la zone de jeu 2005

Page 6

UV PR Reacutealisation drsquoune base roulanteA04

3 Cahier des charges de lrsquoUV PR

Chaque anneacutee les strateacutegies de locomotions des robots se ressemblent cependant nous partons agrave chaque fois de zeacutero

Crsquoest pourquoi il nous a sembleacute utile drsquoessayer de construire une fois pour toute une base roulante reacuteutilisable et fiable

Nous nous sommes fixeacute comme objectifs principaux

De reacutealiser une base roulante bull Facilement reacuteutilisablebull Fiable

Commandable bull En vitessebull En distancebull En rotation

Caracteacuteristiques bull Pouvant supporter 15kgbull Ne faisant pas plus de 260 mm de large

4 Lrsquoeacutequipe chargeacutee de lrsquoUV PR

Etudiants CARLIER Pierre Emmanuel GM02DE SOUZA Damien GSM05 - CMIDUMAY Damien GM02FONDEUR Germain GM05 - MARSMONTJALON Thomas GI05 - RODRIGUES Sylvain GM05 - MARSTRANNOY Guillaume GM02

Suiveurs Projet

FORGEZ Christophe (laboratoire drsquoeacutelectromeacutecanique de lrsquoUTC)LANFRANCHI Vincent (laboratoire drsquoeacutelectromeacutecanique de lrsquoUTC)

Page 7

UV PR Reacutealisation drsquoune base roulanteA04

Partie A Description geacuteneacuterale de la base roulante

1 Carte megravere

Il srsquoagit de la carte laquo intelligente raquo du robot elle commande le deacuteplacement mais aussi les diffeacuterents actionneurs et capteurs du robot Cette partie correspond agrave

Motorola HCS12 (MC9S12DP256B) Microchip PIC 18F458 Rabbit (RCM3400) PC104 hellip

2 Asservissement

Cette partie correspond au controcircle des actionneurs elle est lrsquointerface entre la carte megravere et les effecteurs Il peut srsquoagir de

Carte de puissance Pont en H Controcircle de vitesse hellip

Page 8

UV PR Reacutealisation drsquoune base roulanteA04

Partie B La meacutecanique 1 Veille technologique

Afin de pouvoir eacuteviter de proposer ou de faire des choses deacutepasseacutees inutiles ou non fiables nous avons proceacutedeacute agrave une petite veille technologique de tout ce qui se fait agrave la Coupe de France de Robotique Pour cela nous nous sommes baseacutes sur le site de lrsquoANSTJ qui est lrsquoassociation qui organise la Coupe de France Sur son site lrsquoANSTJ a recenseacute tous les posters des eacutequipes de la compeacutetition de 2004 Ces posters sont des documents remis agrave lrsquoorganisation en mai 2004 lors de la derniegravere compeacutetition A partir de ces posters nous avons regardeacute comment les eacutequipes avaient fait leur(s) robot(s)

bull Quel systegraveme de deacuteplacement (roues chenilles pattes) bull Quel type de moteurs bull Comment et ougrave les moteurs eacutetaient placeacutes bull Les accouplements (directs ou indirects) bull La forme des robots bull La modulariteacute du laquo bloc moteur raquo

Toutes ces informations sont recenseacutees dans un tableau Excel Ce document est en annexes

Les principales informations recueillies de cette veille sont

bull La plupart des eacutequipes utilisent une liaison directebull La motorisation se fait par des rouesbull Les roues sont placeacutees agrave lrsquoarriegravere du robotbull Les robots sont de formes rectangulaires ou carreacutees

Il faut preacuteciser que ces informations sont relatives au regraveglement de la compeacutetition de 2004 Ces choix sont donc fortement lieacutes au regraveglement On peut noter que dans le passeacute plus de robot avec transmission agrave renvoi drsquoangle existaient

Deux eacuteleacutements sont donc agrave fortement retenir les chenilles ont quasiment disparu et les robots cylindriques sont en forte voie de disparition

Nous tacirccherons donc drsquoeacuteviter ces deux aspects pour la conception de notre base roulante

Page 9

UV PR Reacutealisation drsquoune base roulanteA04

2 Le choix des moteurs

a Technologies

Le regraveglement de la compeacutetition ne laissant pas de reacuteels choix quant agrave la source drsquoeacutenergie utiliseacutee nous nous sommes directement orienteacutes vers des moteurs eacutelectriques Il existe plusieurs familles de moteurs eacutelectriques

bull Les moteurs Brushlessbull Les moteurs agrave Courant Continubull Les moteurs agrave Courant Alternatifbull Les moteurs Pas agrave PasForts de nos expeacuteriences passeacutees les moteurs Pas agrave Pas on eacuteteacute directement mis de

coteacute agrave cause de leur faibles vitesse de rotation et couple En ce qui concerne les moteurs agrave Courant Alternatif leur mise en œuvre est assez compliqueacutee pour des systegravemes embarqueacutes Nous avons donc le choix entre les moteurs Brushless et les moteurs agrave Courant Continu Nous avons opteacute pour les moteurs agrave Courant Continu car ceux-ci sont plus simples agrave controcircler moins coucircteux et mieux connus que les Brushless

b Dimensionnement

Le cahier des charges nous impose les caracteacuteristiques suivantes

- Diamegravetre des roues 8cm- Poids du robot 15 kg- Vitesse maximum drsquoentraicircnement 1ms-1 - Acceacuteleacuteration maximum 1ms-2

Lrsquoassociation avait agrave sa disposition 2 motoreacuteducteurs de types AMAX 26G PLG 26 de chez MDPmotor donc le premier objectif eacutetait de veacuterifier si lrsquoon pouvait se servir de ces moteurs pour reacutepondre aux speacutecifications que lrsquoeacutequipe crsquoeacutetait fixeacute

Nous allons donc vous expliquer la deacutemarche que nous avons suivie

On peut repreacutesenter lrsquoaxe moteur comme ci dessous

Moteur

Reacuteducteur

Palier

Roue

eacutecrasement

Page 10

UV PR Reacutealisation drsquoune base roulanteA04

Tout drsquoabord il faut deacuteterminer la force de reacutesistance au roulement celle-ci va deacutependre essentiellement de deux paramegravetres

- force de frottement essieu palier donneacutee par la relation suivante

rff D

dMgF 22

times

times= micro fmicro Coefficient de frottement essieu palier

rD Diamegravetre de la roue

2d

Rayon de lrsquoessieu

- force drsquoeacutecrasement

re D

fMgF 2timestimes=M Masse du robotf Eacutecrasement (00001 m)

Ce qui nous donne lrsquoexpression de la force de reacutesistance au roulement celle-ci devant ecirctre vaincue par le moteur pour mettre le robot en mouvement

+= fdMg

DF f

rres 2

2 micro

A partir de cette force on peut deacuteterminer le couple reacutesistant permanent agrave vaincre

resr

rp FDC times=2

Pour pouvoir appliquer le principe fondamental de la meacutecanique il nous faut deacuteterminer lrsquoinertie de la charge Afin drsquoobtenir ce paramegravetre nous allons consideacuterer qursquoil y a conservation de lrsquoeacutenergie cineacutetique entre le mouvement de rotation (de la roue) et de la translation (du robot) ce qui nous donne

222

221

21

=rArr=Ω r

ccccDMJMVJ

Si lrsquoon ramegravene cette inertie au moteur cela donne

rcmc

rm

ccmc

rmmccc

kJJJJ

JJ

ηη

η

121

21

2

2

2

2

times=hArrΩ

Ωtimes=

Ω=Ωk Rapport de reacuteduction

rη Rendement du reacuteducteurcJ Inertie de la charge

mcJ Inertie rameneacutee au moteur

Page 11

Maintenant nous avons tous les eacuteleacutements pour eacutecrire le principe fondamental de la meacutecanique

mrpmmmtot CCJ minus=γ

Ici compte tenu de notre application pour deacuteterminer le couple moteur neacutecessaire il faut tenir compte du nombre de moteurs

( )[ ]mrpmmcmmoteur

m CJJnb

C 1 ++= γ

Dans lrsquoapplication le nombre de moteurs srsquoeacutelegraveve agrave deux donc si lrsquoon regarde lrsquoexpression du couple moteur pour chaque phase cela donne

- phase drsquoacceacuteleacuteration

mmaccmacc

r

rpa

r

rmaccm

CP

kC

kDMJC

η

ηγ

η

1

122

1

max

2

2

timesΩtimes=

+times

times

+=

- phase de freinage

mmfrmfr

r

rpfr

r

rmfrm

CP

kC

kDMJC

η

ηγ

η

1

122

1

max

2

2

timesΩtimes=

+times

times

+=

- reacutegime permanent

mmpermmperm

r

rppermm

CP

kC

C

η

η1

21

max

timesΩtimes=

=

Maintenant que toutes les relations ont eacuteteacute mises en eacutevidence on peut regarder les reacutesultats que lrsquoon obtient avec le moteur AMAX 26G en gardant agrave lrsquoesprit que pour lapplication on considegravere que les phases drsquoacceacuteleacuteration seront preacutepondeacuterantes crsquoest pourquoi on dimensionnera les moteurs pour les phases drsquoacceacuteleacuterations

Apparemment le moteur aurait pu convenir si le reacuteducteur avait eu un rapport de reacuteduction plus faible En effet le moteur peut deacutelivrer le couple nominal neacutecessaire mais nous ne permet pas drsquoatteindre les vitesses souhaiteacutees Dans un premier temps nous avions revu nos speacutecifications agrave la baisses envisageacute la meilleure faccedilon de commander le moteur de faccedilon agrave ce que lrsquoon deacutemarre toujours en suivant la limite de puissance imposeacutee par le collecteur meacutecanique Ceci nous aurait permis drsquoavoir la meilleure dynamique du moteur La conseacutequence de ce type de fonctionnement aurait eacuteteacute un eacutechauffement excessif et un vieillissement preacutematureacute du moteur Donc les risques de casse auraient eacuteteacute multiplieacutes

Suite agrave un incident durant les phases de tests un des moteurs crsquoest vu endommageacutes crsquoest pourquoi il agrave fallu dimensionner drsquoautres moteursNous avons donc repris nos calculs avec un nouveau rapport de reacuteduction ce qui nous donne les reacutesultats suivants

Nous avons donc rechercheacute un moteur qui aurait pu avoir ses caracteacuteristiques agrave savoir - Couple nominal 34 mNm- Vitesse nominale 3342 trmin- Puissance nominale 16 W- Alimentation 24V- Reacuteducteur 1 14

Ce qui nous donnerait en sortie de reacuteducteur - Couple nominal 033 Nm- Vitesse nominale 239 trmin

Nous avons eu beaucoup de mal agrave trouver un moteur qui reacuteponde agrave ses exigences de maniegravere preacutecise et qui ait des caracteacuteristiques geacuteomeacutetriques compatibles avec les speacutecifications meacutecaniques Ces speacutecifications meacutecaniques eacutetant contraignantes compte tenu de la strateacutegie envisageacutee

Crsquoest pourquoi nous avons seacutelectionneacute un moteur un peu surdimensionneacute pour notre application toutefois cela va dans le bon sens comme nous sommes obligeacutes de mettre un renvoi drsquoangle ce qui va augmenter les pertes et lrsquoinertie Donc ce surdimensionnement devrait palier aux impreacutevus et combler nos neacutegligences

c Choix possibles

Gracircce aux informations qui preacutecegravedent on a pu choisir 3 Reacutefeacuterences bull Un motoreacuteducteur de chez MDP-Motor avec une vitesse en charge de 309 trmin-1 et

un couple de 057 Nm reacutefeacuterence AMAX32GHPPLG42S prix unitaire TTC 310 euro (avec -20 en tant que participant agrave la Coupe) disponibles sous 12 semaines longueur sans arbre de 142 mm

bull Un motoreacuteducteur de chez MDP-Motor avec une vitesse en charge de 559 trmin-1 et un couple de 060 Nm reacutefeacuterence RE035GPLG52 prix unitaire TTC 337 euro (avec -20 en tant que participant agrave la Coupe) disponibles de suite longueur sans arbre de 144 mm

bull Un motoreacuteducteur de chez Faulhaber avec une puissance de 45 W reacutefeacuterences moteur 2657 reacuteducteur seacuterie 26 Rr =14) prix unitaire TTC 507 euro disponibles de suite longueur sans arbre 125 mm

Voir en annexes pour les caracteacuteristiques de ces reacutefeacuterencesAux vues des longueurs obtenues il nous est rapidement apparu qursquoune transmission

directe Motoreacuteducteur Roue nrsquoeacutetait pas envisageable du fait drsquoune longueur totale minimum de (125 + 30) 2 = 310 mm avec 125 la longueur drsquoun motoreacuteducteur 30 la largeur estimeacutee drsquoune roue Nous avons donc opteacute pour une solution agrave renvoi drsquoangle

d Choix deacutefinitif

Gracircce aux caracteacuteristiques preacuteceacutedentes nous avons choisi les RE035GPLG52 du fait de leurs disponibiliteacute caracteacuteristiques et prix En ce qui concerne la transmission par renvoi drsquoangle nous avons opteacute pour des systegravemes deacutejagrave tout fait qui permettent une plus grande preacutecision un meilleur rendement et un meilleur rapport qualiteacute prix que les montages artisanaux Voici la reacutefeacuterence que nous avons retenue

bull Reacutefeacuterence 748-437 chez Radiospares ou B332312 chez HPCeurope avec les caracteacuteristiques suivantes Rr = 1 C max = 068 Nm V max = 1500 trmin-1 η = 094 prix RS 5750 euro piegravece et prix HPC 52 euro piegravece (avec -10 en tant que participant agrave la Coupe) (Voir les autres caracteacuteristiques en annexes)Pour des raisons de disponibiliteacute nous avons commandeacute ces 2 piegraveces chez

Radiospares En ce qui concerne la liaison entre lrsquoarbre moteur et lrsquoarbre de la transmission nous

avons deacutecideacute drsquousiner un accouplement rigide dont les plans se trouvent en annexes Du coteacute moteur le blocage en rotation est assureacute par une vis de pression qui se trouve dans la gorge preacutevue initialement pour la clavette De lrsquoautre coteacute nous avons usineacute un meacuteplat sur lrsquoarbre du reacuteducteur meacuteplat sur lequel vient appuyer une autre vis de pression

3 Les supports des moteurs

A lrsquoorigine nous avions penseacute mettre les moteurs et les roues coaxiaux nous avions donc imagineacute un systegraveme de bride qui permettrait de bloquer le moteur selon 2 axes de translation et 2 axes de rotation gracircce agrave 2 vis de serrage associeacutee agrave une eacutequerre qui permettait le blocage selon le dernier axe de translation et de rotation Le tout eacutetait fixeacute sur une plaque de fond qui constituerait la base du robot

Voici donc a quoi ressembler cette bride (pour un moteur)

Bride de maintien pour moteur de faible longueur

Bride monteacutee sur la plaque de fond avec un moteur

Ensuite lorsque nous sommes passeacutes agrave la solution avec renvoi drsquoangle nous avons deacutecideacute drsquousiner une piegravece certes complexe mais qui proposait une universaliteacute notamment au niveau des diffeacuterentes positions des moteurs (verticale et horizontale) aspect qui satisfait pleinement au cahier des charges Cette piegravece que par la suite nous appellerons Bloc Moteur doit permettre la mise et le maintien en position du motoreacuteducteur la mise et le maintien en position du reacuteducteur la fixation de lrsquoensemble au sein du robot notamment sur la plaque de fond

Apregraves une petite eacutetude nous sommes arriveacutes agrave une piegravece de ce type

Bloc moteur pour la solution avec renvoi dangle

Cette nouvelle piegravece agrave de nombreux avantages

bull Elle nous permet de pouvoir incorporer le renvoi drsquoangle bull De maintenir les piegraveces entre-elles et de limiter les efforts directs sur les

diffeacuterents eacuteleacutementsbull Drsquoecirctre installeacute agrave lrsquohorizontale ou agrave la verticale

Effectivement lors de la conception du bloc moteur nous avons penseacute aux anneacutees futures et nous avons donc preacutevu un montage des moteurs agrave la verticale ou agrave lrsquohorizontale

En position verticale

En position horizontale

4 Les roues

Comme vu lors de la veille technologique les chenilles ont quasiment disparu de la compeacutetition Ceci est ducirc au fait que cette technologie est difficile agrave mettre en œuvre et que les regraveglements proposent des aires de jeux totalement planes

Or cette anneacutee un fosseacute fait son apparition dans le regraveglement Ce fosseacute de 36 mm de profondeur vient seacuteparer deux aires de jeu Une neacutecessiteacute de traverser le fosseacute apparaicirct donc pour aller renverser les quilles de lrsquoadversaire

Deux solutions sont alors possibles bull Traverser sur le pont aleacuteatoirebull Traverser le fosseacute

Si nous choisissons de traverser par le pont lrsquoideacutee de garder notre systegraveme de roues est correcte par contre un systegraveme agrave chenille permettrait de passer par le fosseacute

Apregraves reacuteflexion de lrsquoeacutequipe PR et des membres de la Coupe E=M6 la solution de traverser par le pont est retenue Ce qui nous a conduit tout droit vers la solution agrave roues

Les roues utiliseacutees sont des roues de roller de diamegravetre 80mm et drsquoune largeur de 22mm Ces roues sont relieacutees agrave lrsquoarbre drsquoun renvoi drsquoangle par lrsquointermeacutediaire drsquoun accouplement en aluminium

5 La base

Pour la base du robot il nous a parut indispensable de dimensionner la plaque de fond en eacutepaisseur De plus afin de maintenir la solution de modulariteacute de lrsquoensemble moteurs ndash roues nous avons deacutecideacute de fixer les deux supports moteurs sur un platine qui sera elle-mecircme fixeacutee agrave la plaque de fond du robot

Premiegraverement nous avons effectueacute un dimensionnement succinct de la platine

a Reacuteaction drsquoappui

0=sum Fx OK

0=sum Fy qLRbRaorRbRaqL210 =+=++minus

qLRa21=

AB = 027 m = L

P = mg P = 15 x 10 = 150 N

Q = 150 N270 mm soit q = 555 Nm

Bille folle

Accouplement

Bloc moteur

Renvoi drsquoangle

Platine

Base du robot

Motoreacuteducteur

Roue

b Moment de flexion

0 =sum= cMMf

02

sup2 =minus+ RaxqxMf

sup221

21 qxqLxMf minus=

c Flegraveche

)( xMfEIY =

sup221

21 qxqLxEIY minus=

161sup2

41 3 CqxqLxEIY +minus=

21241

121 43 CxCqxqLxEIY ++minus=

d Conditions aux limites

Y (x=0) = 0 C2 = 0

Y (x=L) = 0 012412

44

=+minus LCqLqL

241

4qLLC =

241

3qLC =

On obtient donc

xqLqxqLxEIY 343

241

241

121 +minus=

De mecircme

+minus=

242412

343 xLxLxEIqY

On sait que bull E = 210 000 10^6bull Y = 1 10^-3 mbull Q = 555 Nmbull L = 027 m

bull12

3bhI = b = 006 m

+

minus

=24

22416

128

343 LL

LLL

EYqI

36

4

0010102100000601052155512timestimes

timestimes=minus

h

Et enfin on trouve h lrsquoeacutepaisseur de la platine h= 43 mm

Apregraves reacuteflexion nous nous sommes rendu compte que ce calcul nrsquoeacutetait pas rigoureux car nous avons consideacutereacute la theacuteorie des poutres or dans notre cas nous ne pouvons satisfaire cette theacuteorie (Longueur de la section = 10 x la largeur de la section)

Il nous faut donc utiliser un modegravele plus preacutecis crsquoest pourquoi nous avons deacutecideacute de faire un calcul par eacuteleacutements finis sous Ideacuteas Ainsi nous trouvons une eacutepaisseur h = 32 mm

Il nous faut donc une platine de plus de 3 mm Etant donneacute que la platine sera solidairement fixeacutee agrave la base du robot nous avons deacutecideacute de prendre une eacutepaisseur de platine de 2 mm et une eacutepaisseur de base de robot de 2 mm Nous obtenons donc une eacutepaisseur totale de 4 mm Ainsi nous devrions avoir sous une charge de 15 kg moins drsquoun millimegravetre de flexion de la base du robot

6 Reacutesultats

Assemblage en position horizontale

Vue eacuteclateacutee en position verticale

Photo de lrsquoassemblage roues ndash blocs moteurs ndash moteurs ndash platine

Partie C Lrsquoeacutelectronique20 Les batteries

Afin de pouvoir choisir les batteries approprieacutees agrave notre application nous devons dans un premier temps faire une estimation de la consommation drsquoeacutenergie totale avec les pointes de courant envisageacutees dans notre robotIl est agrave noter que nous ne connaissons pas encore en deacutetail tous les eacuteleacutements annexes qui seront implanteacutes dans le robot comme par exemple les capteurs et actionneurs diverses qui seront choisis en fonction des objectifs technologiques atteints ou non de lrsquoassociation et de la strateacutegie finaleDans le but de pouvoir utiliser agrave nouveau dans lrsquoavenir notre base roulante nous avons choisi de surestimer les besoins en eacutenergie de sorte agrave ne pas ecirctre pris au deacutepourvu

La consommation pourrait se deacutecomposer ainsi - 2 moteurs de 24V sous 21A soit 1008 Watts pendant 100 du temps- 3 actionneurs de 21 Watts chacun soit 63 Watts pendant 50 du temps- 3A pour lrsquoeacutelectronique sous 5V soit 15 Watts pendant 100 du temps (Asservissement carte de commandes capteurs)

Ce qui nous fait au total une consommation maximale ~180 WattsLa consommation permanente devrait ecirctre ~147 Watts permanents il faut donc que les batteries puissent deacutebiter un courant de ~6 A sous 24 V durant le fonctionnement du robot

Apregraves une longue recherche on a pu reacutealiser le tableau comparatif des batteries suivant

typeDensiteacute

deacutenergie (WhKg)

Densiteacute deacutenergie (WhL)

auto-deacutecharge (mois)

voltage dune cellule (V)

temps de charge rapide

plomb 35 111 5 agrave 10 2 8h agrave 15h

NiCd (Nickel Cadnium) 50 94 10 agrave 20 12 1h30min

NiMH (Nickel Metal Hydride) 80 135 20 agrave 30 13 2h agrave 4h

Lithium Ion 100 196 5 agrave 10 36 2h agrave 4h

Lithium polymer 150 200 5 agrave 10 36 2h agrave 4h

AlKaline rechargeable 80 15 2h agrave 3h

type

cycle de charge-deacutecharge avant

que capaciteacute passe de 100 agrave

80

Courant max Courant max pic effet meacutemoire estimation

(euroWh) prixcycles

plomb 200 agrave 300 02C 05C M 0895 0003

NiCd (Nickel Cadnium) 1500 1C 20C H 416 0003

NiMH (Nickel Metal Hydride) 300 agrave 500 05C 5C L 2 0004

Lithium Ion 500 agrave 1000 1C 2C L 8 0008

Lithium polymer 300 agrave 500 1C 2C agrave 5C L 32 0006

AlKaline rechargeable 50 02C 05C H 178 0036

Effet meacutemoire L (Low) M (Medium) H (High)Courant max C signifie capaciteacute par exemple une batterie qui peut deacutelivrer un courant max de 1C de 4Ah pourra donc deacutelivrer 4A au maximum sans risque de deacuteteacuterioration

Nous nous sommes inteacuteresseacutes au courant maximum et au temps de charge rapide pour notre choix de batteriesLe type de batterie qui semble le plus approprieacute pour nous est le type Nickel-Cadnium parfaitement adapteacute au pic drsquoappel de courant que provoquent des moteurs pouvant supporter des charges rapides en 1h30min seulement afin de devoir preacutevoir trop de jeux de batteries diffeacuterents

Les batteries LI-Ion ou LI-Polymer preacutesentent une densiteacute eacutenergeacutetique tregraves inteacuteressante mais leur prix est beaucoup plus eacuteleveacute agrave lrsquoachat et de plus dans notre application roulant sur un sol peu accidenteacute la masse pouvant ecirctre transporteacutee est suffisante pour le type NiCd

Les batteries LI-Ion ou LI-Polymer sont plus adapteacutees agrave lrsquoaeacuteromodeacutelisme ou au petit appareil eacutelectroniqueQuant aux batteries au plomb qui sont vraiment bon marcheacute le courant maximum supporteacute est trop faible est supposerait drsquoavoir une forte capaciteacute

Nous voulons avoir une autonomie de 30 minutes il nous faut donc une eacutenergie de 735 WhOr sous 24 V les batteries doivent avoir une capaciteacute de ~3 AhComme les batteries NiCd peuvent deacutebiter un courant maximum de 1C (une fois leur capaciteacute) nous devons donc prendre des batteries de 6Ah sous 24 V ce qui nous donnera une autonomie de 1 heure

Il faudra donc soit acheter un bloc accumulateur NiCd de 24 V 6 Ah srsquoil existe dans le commerce soit le reacutealiser nous mecircme en assemblant diffeacuterents eacuteleacutements

Rappelons que lrsquoassociation en seacuterie permet drsquoadditionner les tensions des eacuteleacutements associeacutes et que lrsquoassociation en parallegravele permet drsquoadditionner les courants deacutebiteacutes

Par exemple des eacuteleacutements de 12 V chacun pour 3 Ah srsquoassocieraient ainsi

Soit deux seacuteries de 20 eacuteleacutements eacutequivalentes agrave 24 V et faisant une capaciteacute de 3 Ah chacune

Il est possible de reacutepartir les accumulateurs en diffeacuterents paquets pour faciliter le rangement dans le robot ou reacutepartir la masse ou eacuteventuellement trouver des packs dans le commerce

Dans le cas de lrsquoUV PR le choix des batteries reste pour le moment sur les NiCd mais pour les essais pratiques on utilisera des batteries au plomb que lrsquoon possegravede deacutejagrave drsquoautant plus que les essais sont reacutealiseacutes avec les moteurs de propulsion et lrsquoasservissement seul ce qui

neacutecessite un deacutebit de courant de 24105 = 4375 A sur 2 batteries soit asymp2187 A

Comme les batteries au plomb peuvent deacutebiter 02C il nous en faudrait des de asymp 109 Ah

Or les essais de la base roulante ne seront que de courtes dureacutees et lrsquoon se contentera donc drsquoutiliser des batteries de 6 Ah pour des raisons de volume mecircme si elles ne sont pas vraiment bien dimensionneacutees

21 La commande des moteurs

Dans un premier temps nous verrons un bref reacutecapitulatif des cartes et modules drsquoasservissement du commerce

Pour la commande les moteurs plusieurs solutions ont eacuteteacute envisageacutees - Un asservissement lsquotout faitrsquo analogique modules laquo Escap raquo- Une solution lsquoartisanalersquo carte avec asservissement numeacuterique- Un asservissement lsquotout faitrsquo numeacuterique circuits laquo LM629 raquo

a Comparatifs des modules drsquoasservissement et calcul des correcteurs

Veille technologique sur les systegravemes drsquoasservissement utiliseacutes par les diffeacuterentes eacutecoles de la coupe E= M6

Le but de cette partie est drsquoeacutetudier les principales techniques drsquoasservissement utiliseacutees par les eacutecoles de la Coupe E=M6 Ce document est loin drsquoecirctre exhaustif et servira de base agrave compleacuteter et actualiser pour les semestres et eacutequipes prochaines

Apregraves une eacutetude sur plus drsquoune trentaine drsquoeacutecoles il ressort trois formes drsquoasservissement la plus utiliseacutee agrave 85 est du type PID en majoriteacute reacuteduit au PI ensuite viennent les microcontrocircleurs PIC associeacutes au PID et les modules AVR nous allons par la suite deacutetailler ces trois solutions Il existe eacutegalement des systegravemes de controcircle dits agrave retour drsquoeacutetat jamais utiliseacutes jusqursquoagrave preacutesent pour la Coupe crsquoest pourquoi nous ne deacutevelopperons pas son approche

3 Systegraveme PID

httpwwwancrorgfichtechactionpidindexhtm

a Principe

Pour pouvoir tester un asservissement il faut dabord reacutealiser une plate-forme de deacuteveloppement le plus geacuteneacuteralement du type suivant Mais pour commencer un brin de theacuteorie illustreacute par des exemples Le scheacutema de principe est repreacutesenteacute ci-dessous

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

Nous avons bien un scheacutema en boucle fermeacutee puisque la sortie du systegraveme est reacuteinjecteacutee dans lentreacutee Les trois blocs bleus correspondent chacun agrave une fonctionnaliteacute Ki est le coefficient inteacutegral Kp le coefficient proportionnel et Kd le coefficient deacuteriveacute Chacun de ces coefficients a une fonctionnaliteacute bien preacutecise Commenccedilons par le plus simple le proportionnel

b Asservissement P

Lasservissement proportionnel est essentiel au fonctionnement du PID Il permet essentiellement de donner de la puissance au moteur Voici quelques reacutesultats dexpeacuterimentations avec Ki=0 et Kd=0

La courbe noire repreacutesente la consigne que lon deacutesire atteindre (Ud) cest un eacutechelon de valeur 32 La courbe bleue repreacutesente la vitesse reacuteelle du systegraveme (Y) Comme vous pouvez le constater plus Kp est grand plus le systegraveme converge vite vers sa valeur finale Mais en contrepartie pour des valeurs de Kp trop grandes le systegraveme oscille Mais lagrave nest pas notre plus gros problegraveme en effet sur ces courbes on voit nettement que la vitesse du moteur natteint jamais la vitesse deacutesireacutee Cest ce que lon appelle lerreur statique elle correspond agrave la diffeacuterence entre la vitesse reacuteelle et la vitesse deacutesireacutee en reacutegime eacutetablie (une fois que le systegraveme sest stabiliseacute) Pour compenser cette erreur statique on rajoute le terme inteacutegral

c Asservissement PI

Le correcteur inteacutegral sert principalement agrave supprimer lerreur statique Lideacutee principale est de charger ou inteacutegrer lerreur depuis le deacutebut et dajouter cette erreur agrave la consigne jusquagrave ce quelle devienne nulle Lorsque cette erreur est nulle le terme inteacutegral se stabilise et il compense parfaitement lerreur entre la consigne et la vitesse reacuteelle Deacutemonstration en image

On voit cette fois-ci que le terme inteacutegral a bien fonctionneacute et que lerreur statique est nulle On constate aussi que plus le gain Ki est grand plus le systegraveme converge vite En revanche plus Ki est grand plus le systegraveme oscille et plus le deacutepassement est grand Sur des asservissements en position le terme deacuteriveacute permet de diminuer le deacutepassement et les oscillations Nous allons voir que dans notre cas nous avons quelques problegravemes

d Asservissement PID ou agrave avance de phase

On a donc rajouteacute le terme deacuteriveacute comme tout bon livre dautomatique le preacuteconise et voici les reacutesultats

Cette fois ci jai choisi de repreacutesenter la tension appliqueacutee au moteur (U) le problegraveme est bien plus flagrant ici Vous voyez que lorsque lon ajoute le terme deacuteriveacute la commande est extrecircmement bruiteacutee En reacutealiteacute on somme agrave la commande la deacuteriveacutee de la vitesse reacuteelle que lon multiplie par un gain Kd La deacuteriveacutee dune vitesse est une acceacuteleacuteration cela signifie que lon amplifie tous les bruits dacceacuteleacuteration et en plus on les multiplient par un gain Kd Donc rajoute du bruit amplifieacute dans la commande Alors pourquoi mettent t-ils ce terme deacuteriveacutee dans les livres Simplement parce que ce bruit est typique des asservissement en vitesse Sur des asservissements en position ce problegraveme est moins freacutequent car la deacuteriveacutee de la position est la vitesse

Ici le problegraveme eacutetait visible parce que nous avons reacutealiseacute toutes ces courbes sur un systegraveme reacuteel Si nous avions simuleacute ces reacutesultats lacceacuteleacuteration naurait pas eacuteteacute bruiteacutee et les courbes auraient eacuteteacute parfaites Pour impleacutementer ce PID sur notre robot il a fallu programmer en numeacuterique une deacuteriveacutee et une inteacutegrale

e PID numeacuterique et reacuteglage

Notre premier problegraveme est de programmer le terme inteacutegral Il existe une meacutethode qui consiste agrave estimer la surface entre deux eacutechantillons mais dans notre cas nous avons des problegravemes dus aux bruits et agrave la freacutequence deacutechantillonnage Alors il faut sommer toutes les erreurs depuis de deacutebut

Notre second problegraveme est de programmer le terme deacuteriveacute La meacutethode ici est de calculer la pente entre deux eacutechantillons de e Theacuteoriquement cela revient agrave faire le calcul suivant

Avec la peacuteriode deacutechantillonnage Pour faire un asservissement numeacuterique il faut impeacuterativement avoir une peacuteriode fixe Pour gagner du temps de calcul geacuteneacuteralement on inteacutegre directement dans le gain Kd

Voici un lalgorithme exemple

Ti = 0 Initialise le terme inteacutegral

for ( i=1 i lt= Nb_cycles i++ )

Init_timers (1) Initialise le timer agrave notre peacuteriode 1 ms

Y = Codeur () Stoque la valeur du codeur dans Y Rst_codeur () Remet le codeur agrave zeacutero Ud = Consigne () Mise agrave jour de la consigne e_old=e Stoque e(t-1) e = Ud - Y Calcul de lerreur Ti = Ti + e Calcul de linteacutegral Calcul du PID U = Kp e Terme proportionnel

+ Ki Ti Terme inteacutegral + Kd ( e - e_old ) Terme deacuteriveacute Moteur (U) On applique la consigne

while ( end_timer() ) On attend la fin de la peacuteriode

Pour le reacuteglage des gains Kp Ki et Kd il existe diffeacuterentes meacutethodes Ici nous lavons fait de maniegravere empirique et le reacutesultats est plutocirct bon Linconveacutenient de ces meacutethodes est quelles demandent un modegravele du systegraveme ce qui est geacuteneacuteralement dur agrave produire Il existe

aussi des composants programmables qui permettent de faire directement lasservissement numeacuterique (HCTL 1100 LM629) Ils sont exactement baseacutes sur la meacutethode preacutesenteacutee ici

Pour ce qui est du reacuteglage des correcteurs lrsquooptimal est drsquoutiliser la meacutethode de lrsquooptimum dissymeacutetrique une fois que lrsquoon agrave reacutealiseacute le modegravele du systegraveme La plus part des eacutecoles ne reacutealisent pas ce modegravele et ce limite donc agrave une correction empirique en reacutealisant des tests ou en utilisant la meacutethode Ziegler-Nichols agrave partir de la reacuteponse agrave un eacutechelon de tension

Par la suite nous rappellerons les meacutethodes de Ziegler-Nichols et de lrsquooptimum dissymeacutetrique

f Les meacutethodes de Ziegler-Nichols

Ces meacutethodes fournissent des reacuteglages pour des correcteurs de type PID (pouvant ne comporter quune action Proportionnelle une action Proportionnelle et une action Inteacutegrale ou les 3 actions simultaneacutement) dont la structure est la suivante

bull MEacuteTHODE DE ZIEGLER NICHOLS TEMPORELLE

Elle est adapteacutee aux systegravemes stables en boucle ouverte qui ont une reacuteponse apeacuteriodique La reacuteponse agrave un eacutechelon unitaire du systegraveme physique doit ecirctre enregistreacutee Diffeacuterentes caracteacuteristiques de la reacuteponse obtenue sont mesureacutees

Le modegravele approcheacute utiliseacutee par Ziegler Nichols comporte une constante de temps et un retard pur ou bien un retard pur et un inteacutegrateur

Si le systegraveme physique comporte un inteacutegrateur les mesures de a et de L demeurent disponibles sur le deacutebut de la reacuteponse

Les reacuteglages suggeacutereacutes par la meacutethode temporelle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 1a - -correcteur PI 09a 3L -

correcteur PID 12a 2L L2Concernant le raffinement des reacuteglages augmenter Kp ou diminuer Ti augment les

oscillations de la sortie

bull MEacuteTHODE DE ZIEGLER NICHOLS FREacuteQUENTIELLE

Cette meacutethode convient particuliegraverement bien aux systegravemes instables en boucle ouverte pour lesquels la meacutethode temporelle nest pas envisageable Lexpeacuterimentation se fait sur le systegraveme boucleacute avec un simple gain proportionnel qui doit ecirctre stable Le principe est de modifier la valeur du gain par essai-erreur jusquagrave atteindre la limite de stabiliteacute (pheacutenomegravene de pompage) Il reste agrave relever le gain limite K0 obtenu et agrave mesurer la peacuteriode T0 des oscillations de la reacuteponse obtenue

Les reacuteglages suggeacutereacutes par la meacutethode freacutequentielle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 05 K0 - -correcteur PI 045 K0 08 T0 -

correcteur PID 06 K0 05 T0 0125 T0

A la page Internet suivante vous trouverez un simulateur de cette meacutethode

httpwww-hadocensieginpgfrhadocateliersreglageEmpCorrReglEmpCorrDroithtml

g Meacutethode de lrsquooptimum dyssimeacutetique (voir poly MC06 Chap 5 et 8)

Cette meacutethode srsquoapplique une fois le modegravele reacutealiseacute et mis sous la forme drsquoun second ordre

et on obtient le correcteur PI

pour une surtension deacutesireacutee QdB

Q = 10^(QdB20)λ= radic(Qsup2(Qsup2-1))Δφ = arcos (1 λ)α= ((1+sin(Δφ))cos(Δφ))sup2ωN= ωQαω0= ωQradicαKP= ω0 λ KQ

4 Les microcontrocircleurs

a Avant propos

Cette fiche se veut ecirctre sous la forme dun projet Un projet non termineacute ougrave chacun peut apporter sa contribution (ameacuteliorations adaptations corrections etc)De ce fait ces pages sont ameneacutees agrave eacutevoluer et vous-mecircme pourrez participer agrave leur eacutevolution

Pourquoi avoir choisit un tel mode de travail Tout simplement parce que le sujet est vaste et que des variations sont possibles suivant lutilisation quen feront les diffeacuterentes personnes

Le but de ce projet est de reacutealiser une double asservissement de vitesse (type PID) de deux moteurs sur un seul PIC (type 16F877) Lutiliteacute majeure eacutetant de faire rouler un robot bien droit et agrave la bonne vitesse A quoi ccedila sert plus preacuteciseacutement

Avec un seul PIC ce projet permet aux roboticiens amateurs et chevronneacutes de reacutealiser facilement leur asservissement de vitesse de moteurs agrave courant continu (en geacuteneacuteral les moteurs de propulsions de leur robot mais ccedila peut ecirctre bien sucircr dautres moteurs) La commande de lasservissement pourra se faire agrave terme en liaison seacuterie (deacutejagrave fait) I2C ou par bus ISA

b Avantages

Il existe bien sucircr dautres systegravemes qui gegraverent un asservissement de vitesses Des systegravemes professionnels existent comme les LM629 Ils ont linconveacutenient decirctre cher (et ce pour un seul moteur) et relativement complexes

Pourquoi chercher un fusil pour chasser des moustiques Le double asservissement sur PIC vous coucircte le prix dun PIC soit environ 15Euro pour un 16F877 actuellement et ce pour 2 moteurs Ce double asservissement se veut relativement simple De plus vous pouvez en modifier le programme et ladapter agrave vos besoins

c Inconveacutenients

Les personnes qui auront les moyens preacutefeacutererons opter pour un systegraveme professionnel certainement pour des raisons de fiabiliteacute mais cest agrave leurs risques et peacuterils -)La puissance du PIC eacutetant limiteacutee il ne peut pas reacutealiser des PID trop rapides ou trop complexes Il y a en particulier une limitation sur le nombre dimpulsions par seconde quil est capable de geacuterer

Le langage utiliseacute eacutetant le C il faut une licence du logiciel pour pouvoir modifier et recompiler le code source c Mais le projet se veut geacuteneacuterique Une version donneacutee pourra ecirctre utiliseacute sans recompilation en respectant quelques contraintes

d Asservissement

En fait on pourrait imaginer quil suffirait denvoyer au moteur une puissance constante pour quil tourne tout le temps agrave la mecircme vitesse Ce nest pas vrai du tout Tout dabord 2 moteurs dune mecircme seacuterie nauront pas forceacutement le mecircme comportement Ensuite parce que les niveaux de tension ou dautre diffeacuterences eacutelectriques peuvent jouer Enfin parce que des influences exteacuterieures (obstacles frein meacutecanique du robot) peuvent jouer

Du coup il est tregraves difficile de faire aller un moteur agrave la vitesse voulue Parfois ce nest pas gecircnant mais ccedila peut lecirctre Un exemple classique est le robot avec 2 roues motrices type char une configuration qui est tregraves courante Mais pour que ce robot aille droit il faut que les 2 moteurs aillent exactement agrave la mecircme vitesse

La solution est de faire un asservissement Cest a dire moduler dynamiquement la puissance envoyeacute aux moteurs suivant leur vitesse mesureacutee afin dadapter celle-ci agrave ce qui est deacutesireacuteeCela implique un eacuteleacutement tregraves important pour asservir il faut un capteur de vitesse du moteur En geacuteneacuteral il sagit dun compte-tour qui enverra N impulsions (ou pas) par tour de moteur Ensuite un programme va calculer en fonction de la vitesse mesureacutee du moteur la puissance agrave utiliser

Les asservissements sont constamment en train de chercher leacutequilibre Il faut bien comprendre quils mettent un certain temps agrave latteindre et ce dernier peut aussi ecirctre instable si lasservissement est mal reacutegleacute

Lasservissement quon va utiliser ici est un classique PIDou plus preacuteciseacutement un PI car pour des raisons de vitesses de traitement la composante deacuteriveacutee est laisseacutee de coteacute (mais rien de difficile agrave rajouter)

Le PID ou Proportionnel Inteacutegrale Deacuteriveacute est une meacutethode de calcul dasservissement

Soit Kp Ki et Kd les coefficients proportionnels inteacutegrale et deacuteriveacuteSoit e lerreur Vitesse mesureacutee moins vitesse demandeacuteeSoit Ti le terme inteacutegral dabord initialiseacute agrave 0

Consigne a appliquer (PWM) = Kp e + (1Ki) (Ti += e) + Kd (e - e(t-1))

On pourrait dire des pages et des pages sur le PID et ce nest pas mon but ici Merci de vous reporter au lien ci-dessous

Pour plus de deacutetails sur le PID la page de lANCR httpwwwancrorgfichtechactionpidindexhtmChez les Fribottes la Simulation de Jean-Claude httpwwwwikifreefrWiKiFriindexphpSimulateur20de20PID

e Le pic

Le PIC est un petit microcontrocircleur assez bon marche et simple a programmer comme a utiliser

La aussi je vais pas rentrer dans les deacutetails vous pouvez vous reporter agrave la bdtech du site Fribotte et en particulier aux cours de Bigonoff

Le PIC est ici programmeacute en C voir la page Fribotte ici Lutilisation du langage C permet dalleacuteger consideacuterablement le deacuteveloppement dune application compliqueacutee

2 Module AVR

httpwwwenseirbfr~matzfravrphp

Tregraves peu de renseignement sur ce module sinon ces informations drsquoun eacutetudiant de lrsquoEnseirb

Depuis plusieurs anneacutees je participe agrave la coupe de robotique E=M6 dont lobjectif pour chaque eacutequipe est de fabriquer un robot autonome devant se conformer agrave un regraveglement Pour plus dinfos vous pouvez vous rendre sur le site de mon eacutequipe Microb Technology ou bien sur le site de Planegravete Sciences lorganisme beacuteneacutevole qui organise cette compeacutetition

Jai deacutecouvert en 2001 les microcontrocircleurs Atmel AVR auxquels je me suis beaucoup attacheacute dune part parce quils sont assez performants pour des microcontrocircleurs 8 bits mais aussi et surtout car le fameux compilateur libre GCC est capable de compiler du code C pour ces petites becirctes Il existe de surcroicirct plusieurs outils libres permettant de les programmer de les simuler etc

Le but de ce projet est donc de deacutevelopper des modules servant dinterface geacuteneacuterique avec le hardware du microcontrocircleur quel que soit la version (par exemple les UART inclus dans les AVR AtMega sont diffeacuterents de ceux preacutesents dans les petits AVR) et de deacutevelopper des modules utiles pour certaines utilisations usuelles et pas seulement pour la coupe E=M6 (codage de hamming asservissement chiffrement etc)

Vous pouvez contacter leacutequipe de deacuteveloppement agrave avr-devdroids-corporg Pour le moment aucune release na eacuteteacute faite mais le travail est deacutejagrave bien avanceacute Chaque soir un screenshot du CVS est reacutealiseacute Il peut ne pas compiler mais normalement ccedila devrait fonctionner Voici le lien

3 Modules drsquoasservissement analogique laquo Escap raquo

Nous avons essayeacute de reacutecupeacuterer les cartes de commande Escap pour moteurs Escap qui avaient eacuteteacute utiliseacutees en 96 et 98 avec succegraves

Nous les avons monteacutes sur une base roulante qui pesait en tout 74 kgVoici grosso-modo leurs avantages et leurs inconveacutenients (pour les notices techniques voir le rapport 96 ou 98)

a Avantages

Cette carte inclut directement un asservissement avec correcteur PI la commande de puissance les ponts en H

Elle est tregraves facile agrave utiliser Elle est speacutecialement conccedilue pour les moteurs Escap que nous avons donc

parfaitement adapteacutee

b Inconveacutenients

Les moteurs ne fonctionnent correctement que sous 24v Les cartes et les moteurs semblent assez gourment Les cartes nantis de gros radiateurs sont relativement encombrantes Les tachymegravetres monteacutes sur les moteurs ne donnent pas une indication de position

mais de vitesse (qui plus est en analogique)

Nous avons preacutefeacutereacute refaire la partie commande car celle de 1996 souffrait de quelques deacutefauts (cf rapport 1996)

La conversion numeacuterique analogique

Pour reacutealiser la conversion numeacuterique analogique nous avons choisit un pont agrave reacutesistance R-2R

Nous pouvons consideacuterer que chaque bit est relieacute agrave un geacuteneacuterateur ideacuteal de tension (qui deacutelivre 0v ou 5v) Par conseacutequent la reacutesistance eacutequivalente quelque soit lrsquoeacutetat des bits et quelques soit le nombre de bits vue entre la sortie et la masse sera eacutegal agrave R

La tension Vs en fonction de lrsquoeacutetat des bits sera

Ce type de CAN eacutetant tregraves classique nous nrsquoindiquerons pas les deacutemonstrations toutefois vous pourrez les trouver tregraves facilement sur Internet ou sur le Cd-rom drsquoannexes joint au dossier

Le montage de Thevenin eacutequivalent est donc

Nous avons jugeacute qursquoune discreacutetisation sur 8 bits eacutetait un peu superflu crsquoest pourquoi nous nous contenterons de 4 bits (ce qui repreacutesentent quand mecircme 16 niveaux de vitesse)

bull Lrsquoadaptation du niveau de tension

Nous avons agrave la sortie du CAN une tension qui srsquoeacutetend de 0 agrave 5v or la commande des cartes Escap ce fait entre -5v et +5v

On peut voir cette adaptation comme lrsquoajout drsquoun offset de -25v et une amplification de gain 2

Voici le montage reacutealisant cette conversion

M1 est un montage suiveur qui lsquorecopiersquo la tension aux bornes de P1 mais sous une impeacutedance constante et eacutegale agrave 4R En 1996 lrsquoeacutequipe avait brancheacute P1 directement sur M3 mais cela a pour inconveacutenient de faire varier agrave la fois lrsquooffset et la penteLe potentiomegravetre P1 permet drsquoajuster lrsquooffset (permet par conseacutequent de reacutegler lrsquoarrecirct complet de moteur) (La valeur theacuteorique de lrsquooffset est 5V (cf formule en M3))

M2 est aussi un montage suiveur Le potentiomegravetre P2 permet drsquoajuster la pente (qui doit avoir un coefficient directeur de 2) Comme M2 est connecteacute au CAN dont la reacutesistance interne est de R P2 doit ecirctre a peut precirct eacutegal agrave R de la sorte la branche aura une reacutesistance eacutequivalente de 2R

M3 Sommateur (Vs = - 2 (Ve + Voffset))

Qursquoelle valeur choisir pour R

Theacuteoriquement on peut choisir nrsquoimporte quelle valeur pour R mais en pratique si R est trop petite une intensiteacute importante serait consommeacutee sans raison et si R est trop grande la forte impeacutedance du montage le rendra tregraves sensible aux parasites (secteur moteurshellip)Ce montage a eacuteteacute testeacute et fonctionne correctement pour R=5k les amplificateurs opeacuterationnels utiliseacutes sont des LM324 mais drsquoautres seraient tout agrave fait envisageables (peu de contraintes de vitesse et de tensions de deacutechets)

4 Conclusion

Nous avons preacutefeacutereacute ne pas utiliser les cartes Escap car les moteurs ne renvoient pas une position sous forme drsquoimpulsion mais une vitesse Etant donneacute que nous avions envisageacute un repeacuterage par odomeacutetrie cela compliquait consideacuterablement la tache

Toutefois il faut savoir que cette solution a eacuteteacute testeacutee et fonctionne tregraves bien (bonne preacutecision bonne dynamique) ainsi dans le cas ougrave le repeacuterage ne se fait pas par odomeacutetrie mais des balises exteacuterieures sachez que cette solution est tregraves pratique agrave utiliser En effet pour imposer une vitesse il suffit au microcontrocircleur drsquoappliquer sur un port un mot binaire correspondant agrave la vitesse voulue hellip et crsquoest tout La carte Escap se charge du reste

5 Carte drsquoasservissement numeacuterique laquo artisanale raquo

La carte reacutealiseacutee baseacutee sur un microcontrocircleur PIC 16F877A srsquoest aveacutereacutee fonctionnelle mais les tests drsquoalgorithmes drsquoasservissement nrsquoont pas eacuteteacute effectueacutesEn effet lrsquoutilisation de cette solution neacutecessite un microcontrocircleur deacutedieacute agrave lrsquoasservissement capable de communiquer via un protocole agrave deacutefinir avec la laquo carte megravere raquo (centralisant les retours des autres capteurs du robot et agissant sur les diffeacuterents actionneurs en fonction de la strateacutegie)Or afin de limiter le nombre de microcontrocircleurs sur le robot et du fait que lrsquoon dispose drsquoun budget suffisant nous avons deacutecideacute drsquoessayer drsquoutiliser des composants speacuteciaux reacutealisant lrsquoasservissement

Le systegraveme se deacutecompose en

- Un microcontrocircleur pour appliquer la PWM asservir et commander- Une carte de puissance pour chaque moteur baseacutee sur un LMD18200- Une carte compteur drsquoimpulsions pour les codeurs

Afin de favoriser lrsquointeractiviteacute et les reacuteglages jrsquoai ajouteacute une carte afficheur LCD avec 6 boutons sur la carte microcontrocircleur

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 5: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

UV PR Reacutealisation drsquoune base roulanteA04

Preacutesentation1 La coupe E=M6

La Coupe de France de Robotique est une compeacutetition au cours de laquelle viennent srsquoaffronter les grandes eacutecoles et universiteacutes franccedilaises Elle est organiseacutee par la chaicircne de teacuteleacutevision nationale M6 et lrsquoAssociation Planegravete Sciences Cette compeacutetition se deacuteroule chaque anneacutee au mois de mai sur le site de la Ferteacute Bernard agrave lrsquooccasion du festival laquo Arts et Technologie raquo plus connu sous le nom de ARTEC

Le deacutefi proposeacute par la Coupe consiste agrave concevoir et fabriquer un robot mobile totalement autonome agrave partir drsquoun sujet imposeacute par les organisateurs de la coupe et preacutesenteacute au mois de septembre

LrsquoUTC participe agrave cette compeacutetition depuis 1996 ougrave un groupe drsquoeacutetudiants motiveacutes srsquoeacutetait constitueacute de lui-mecircme pour participer agrave ce challengeAujourdrsquohui notre force est de profiter de lrsquoenseignement des anciens participants et du savoir-faire acquis

Lrsquoensemble des personnes impliqueacutees est vraiment deacutetermineacute agrave atteindre des objectifs preacutecis ameacuteliorer nos performances et eacuteliminer nos faiblesses deacutejagrave pour acceacuteder agrave la phase finale et peut-ecirctre remporter la victoire Il y a aussi la volonteacute de repreacutesenter notre eacutecole dans une compeacutetition dont les retombeacutees meacutediatiques sont de plus en plus importantes et de la faire jouer dans la mecircme cour que les plus ceacutelegravebres eacutecoles franccedilaises Par ailleurs notre eacutequipe srsquoest classeacutee 12egraveme en 2002 (sur 190 eacutequipes seacutelectionneacutees) lrsquoexpeacuterience des participations preacuteceacutedentes ayant eacuteteacute systeacutematiquement mise agrave profit

Cette activiteacute inclut eacutegalement un aspect formateur agrave ne pas neacutegliger Pour mener agrave bien ce projet il est neacutecessaire de faire les meilleurs choix dans les deacutelais les plus brefs de reacuteagir vite et de travailler efficacement Par ailleurs ce projet possegravede un aspect pratique important pour des eacutetudiants ayant des connaissances plutocirct theacuteoriques laquo mettre la main agrave la pacircte raquo permet drsquoapprendre ce qursquoimplique drsquoavoir agrave commander une piegravece ou de la fabriquer drsquoutiliser un tournevis de tenir un fer agrave souder parcourir une documentation ou encore de deacuteceler lorigine dune panne

De plus ce challenge technique et humain nous permet drsquoune part de mettre en pratique nos connaissances scientifiques agrave travers une reacutealisation concregravete et drsquoautre part drsquoacqueacuterir une certaine expeacuterience dans le travail en eacutequipe affilieacute agrave un projet complet au travers de toutes les disciplines impliqueacutees (management comptabiliteacute communication strateacutegies meacutecanique eacutelectronique informatiquehellip)

Page 5

UV PR Reacutealisation drsquoune base roulanteA04

2 La Coupe de France de Robotique 2005

Cette anneacutee les robots jouent au bowling

Chaque eacutequipe doit construire un ou deux robots entiegraverement autonomes Les matchs se jouent entre deux eacutequipes et durent 1 minute 30

Une couleur de quilles est attribueacutee agrave chaque eacutequipe Sur le terrain 15 quilles de chaque couleur sont disposeacutees aleacuteatoirement Au deacutepart celles-ci se trouvent de lrsquoautre cocircteacute drsquoun fosseacute dans le camp adverse Des ponts permettent de rejoindre lrsquoautre cocircteacute mais ceux-ci sont placeacutes aleacuteatoirement en deacutebut de partie Il est eacutegalement possible drsquoutiliser des balles de type laquo balle de squash raquo pour faire du tir balistique et ainsi espeacuterer faire tomber des quilles agrave distance

Pour gagner la partie les robots doivent renverser le plus de quilles possible Les robots peuvent aussi relever les quilles de la couleur adverse renverseacutees par lrsquoautre eacutequipe

Lrsquoeacutequipe qui a le plus de quilles de sa couleur renverseacutees en fin de match est deacuteclareacutee vainqueur

Illustration de la zone de jeu 2005

Page 6

UV PR Reacutealisation drsquoune base roulanteA04

3 Cahier des charges de lrsquoUV PR

Chaque anneacutee les strateacutegies de locomotions des robots se ressemblent cependant nous partons agrave chaque fois de zeacutero

Crsquoest pourquoi il nous a sembleacute utile drsquoessayer de construire une fois pour toute une base roulante reacuteutilisable et fiable

Nous nous sommes fixeacute comme objectifs principaux

De reacutealiser une base roulante bull Facilement reacuteutilisablebull Fiable

Commandable bull En vitessebull En distancebull En rotation

Caracteacuteristiques bull Pouvant supporter 15kgbull Ne faisant pas plus de 260 mm de large

4 Lrsquoeacutequipe chargeacutee de lrsquoUV PR

Etudiants CARLIER Pierre Emmanuel GM02DE SOUZA Damien GSM05 - CMIDUMAY Damien GM02FONDEUR Germain GM05 - MARSMONTJALON Thomas GI05 - RODRIGUES Sylvain GM05 - MARSTRANNOY Guillaume GM02

Suiveurs Projet

FORGEZ Christophe (laboratoire drsquoeacutelectromeacutecanique de lrsquoUTC)LANFRANCHI Vincent (laboratoire drsquoeacutelectromeacutecanique de lrsquoUTC)

Page 7

UV PR Reacutealisation drsquoune base roulanteA04

Partie A Description geacuteneacuterale de la base roulante

1 Carte megravere

Il srsquoagit de la carte laquo intelligente raquo du robot elle commande le deacuteplacement mais aussi les diffeacuterents actionneurs et capteurs du robot Cette partie correspond agrave

Motorola HCS12 (MC9S12DP256B) Microchip PIC 18F458 Rabbit (RCM3400) PC104 hellip

2 Asservissement

Cette partie correspond au controcircle des actionneurs elle est lrsquointerface entre la carte megravere et les effecteurs Il peut srsquoagir de

Carte de puissance Pont en H Controcircle de vitesse hellip

Page 8

UV PR Reacutealisation drsquoune base roulanteA04

Partie B La meacutecanique 1 Veille technologique

Afin de pouvoir eacuteviter de proposer ou de faire des choses deacutepasseacutees inutiles ou non fiables nous avons proceacutedeacute agrave une petite veille technologique de tout ce qui se fait agrave la Coupe de France de Robotique Pour cela nous nous sommes baseacutes sur le site de lrsquoANSTJ qui est lrsquoassociation qui organise la Coupe de France Sur son site lrsquoANSTJ a recenseacute tous les posters des eacutequipes de la compeacutetition de 2004 Ces posters sont des documents remis agrave lrsquoorganisation en mai 2004 lors de la derniegravere compeacutetition A partir de ces posters nous avons regardeacute comment les eacutequipes avaient fait leur(s) robot(s)

bull Quel systegraveme de deacuteplacement (roues chenilles pattes) bull Quel type de moteurs bull Comment et ougrave les moteurs eacutetaient placeacutes bull Les accouplements (directs ou indirects) bull La forme des robots bull La modulariteacute du laquo bloc moteur raquo

Toutes ces informations sont recenseacutees dans un tableau Excel Ce document est en annexes

Les principales informations recueillies de cette veille sont

bull La plupart des eacutequipes utilisent une liaison directebull La motorisation se fait par des rouesbull Les roues sont placeacutees agrave lrsquoarriegravere du robotbull Les robots sont de formes rectangulaires ou carreacutees

Il faut preacuteciser que ces informations sont relatives au regraveglement de la compeacutetition de 2004 Ces choix sont donc fortement lieacutes au regraveglement On peut noter que dans le passeacute plus de robot avec transmission agrave renvoi drsquoangle existaient

Deux eacuteleacutements sont donc agrave fortement retenir les chenilles ont quasiment disparu et les robots cylindriques sont en forte voie de disparition

Nous tacirccherons donc drsquoeacuteviter ces deux aspects pour la conception de notre base roulante

Page 9

UV PR Reacutealisation drsquoune base roulanteA04

2 Le choix des moteurs

a Technologies

Le regraveglement de la compeacutetition ne laissant pas de reacuteels choix quant agrave la source drsquoeacutenergie utiliseacutee nous nous sommes directement orienteacutes vers des moteurs eacutelectriques Il existe plusieurs familles de moteurs eacutelectriques

bull Les moteurs Brushlessbull Les moteurs agrave Courant Continubull Les moteurs agrave Courant Alternatifbull Les moteurs Pas agrave PasForts de nos expeacuteriences passeacutees les moteurs Pas agrave Pas on eacuteteacute directement mis de

coteacute agrave cause de leur faibles vitesse de rotation et couple En ce qui concerne les moteurs agrave Courant Alternatif leur mise en œuvre est assez compliqueacutee pour des systegravemes embarqueacutes Nous avons donc le choix entre les moteurs Brushless et les moteurs agrave Courant Continu Nous avons opteacute pour les moteurs agrave Courant Continu car ceux-ci sont plus simples agrave controcircler moins coucircteux et mieux connus que les Brushless

b Dimensionnement

Le cahier des charges nous impose les caracteacuteristiques suivantes

- Diamegravetre des roues 8cm- Poids du robot 15 kg- Vitesse maximum drsquoentraicircnement 1ms-1 - Acceacuteleacuteration maximum 1ms-2

Lrsquoassociation avait agrave sa disposition 2 motoreacuteducteurs de types AMAX 26G PLG 26 de chez MDPmotor donc le premier objectif eacutetait de veacuterifier si lrsquoon pouvait se servir de ces moteurs pour reacutepondre aux speacutecifications que lrsquoeacutequipe crsquoeacutetait fixeacute

Nous allons donc vous expliquer la deacutemarche que nous avons suivie

On peut repreacutesenter lrsquoaxe moteur comme ci dessous

Moteur

Reacuteducteur

Palier

Roue

eacutecrasement

Page 10

UV PR Reacutealisation drsquoune base roulanteA04

Tout drsquoabord il faut deacuteterminer la force de reacutesistance au roulement celle-ci va deacutependre essentiellement de deux paramegravetres

- force de frottement essieu palier donneacutee par la relation suivante

rff D

dMgF 22

times

times= micro fmicro Coefficient de frottement essieu palier

rD Diamegravetre de la roue

2d

Rayon de lrsquoessieu

- force drsquoeacutecrasement

re D

fMgF 2timestimes=M Masse du robotf Eacutecrasement (00001 m)

Ce qui nous donne lrsquoexpression de la force de reacutesistance au roulement celle-ci devant ecirctre vaincue par le moteur pour mettre le robot en mouvement

+= fdMg

DF f

rres 2

2 micro

A partir de cette force on peut deacuteterminer le couple reacutesistant permanent agrave vaincre

resr

rp FDC times=2

Pour pouvoir appliquer le principe fondamental de la meacutecanique il nous faut deacuteterminer lrsquoinertie de la charge Afin drsquoobtenir ce paramegravetre nous allons consideacuterer qursquoil y a conservation de lrsquoeacutenergie cineacutetique entre le mouvement de rotation (de la roue) et de la translation (du robot) ce qui nous donne

222

221

21

=rArr=Ω r

ccccDMJMVJ

Si lrsquoon ramegravene cette inertie au moteur cela donne

rcmc

rm

ccmc

rmmccc

kJJJJ

JJ

ηη

η

121

21

2

2

2

2

times=hArrΩ

Ωtimes=

Ω=Ωk Rapport de reacuteduction

rη Rendement du reacuteducteurcJ Inertie de la charge

mcJ Inertie rameneacutee au moteur

Page 11

Maintenant nous avons tous les eacuteleacutements pour eacutecrire le principe fondamental de la meacutecanique

mrpmmmtot CCJ minus=γ

Ici compte tenu de notre application pour deacuteterminer le couple moteur neacutecessaire il faut tenir compte du nombre de moteurs

( )[ ]mrpmmcmmoteur

m CJJnb

C 1 ++= γ

Dans lrsquoapplication le nombre de moteurs srsquoeacutelegraveve agrave deux donc si lrsquoon regarde lrsquoexpression du couple moteur pour chaque phase cela donne

- phase drsquoacceacuteleacuteration

mmaccmacc

r

rpa

r

rmaccm

CP

kC

kDMJC

η

ηγ

η

1

122

1

max

2

2

timesΩtimes=

+times

times

+=

- phase de freinage

mmfrmfr

r

rpfr

r

rmfrm

CP

kC

kDMJC

η

ηγ

η

1

122

1

max

2

2

timesΩtimes=

+times

times

+=

- reacutegime permanent

mmpermmperm

r

rppermm

CP

kC

C

η

η1

21

max

timesΩtimes=

=

Maintenant que toutes les relations ont eacuteteacute mises en eacutevidence on peut regarder les reacutesultats que lrsquoon obtient avec le moteur AMAX 26G en gardant agrave lrsquoesprit que pour lapplication on considegravere que les phases drsquoacceacuteleacuteration seront preacutepondeacuterantes crsquoest pourquoi on dimensionnera les moteurs pour les phases drsquoacceacuteleacuterations

Apparemment le moteur aurait pu convenir si le reacuteducteur avait eu un rapport de reacuteduction plus faible En effet le moteur peut deacutelivrer le couple nominal neacutecessaire mais nous ne permet pas drsquoatteindre les vitesses souhaiteacutees Dans un premier temps nous avions revu nos speacutecifications agrave la baisses envisageacute la meilleure faccedilon de commander le moteur de faccedilon agrave ce que lrsquoon deacutemarre toujours en suivant la limite de puissance imposeacutee par le collecteur meacutecanique Ceci nous aurait permis drsquoavoir la meilleure dynamique du moteur La conseacutequence de ce type de fonctionnement aurait eacuteteacute un eacutechauffement excessif et un vieillissement preacutematureacute du moteur Donc les risques de casse auraient eacuteteacute multiplieacutes

Suite agrave un incident durant les phases de tests un des moteurs crsquoest vu endommageacutes crsquoest pourquoi il agrave fallu dimensionner drsquoautres moteursNous avons donc repris nos calculs avec un nouveau rapport de reacuteduction ce qui nous donne les reacutesultats suivants

Nous avons donc rechercheacute un moteur qui aurait pu avoir ses caracteacuteristiques agrave savoir - Couple nominal 34 mNm- Vitesse nominale 3342 trmin- Puissance nominale 16 W- Alimentation 24V- Reacuteducteur 1 14

Ce qui nous donnerait en sortie de reacuteducteur - Couple nominal 033 Nm- Vitesse nominale 239 trmin

Nous avons eu beaucoup de mal agrave trouver un moteur qui reacuteponde agrave ses exigences de maniegravere preacutecise et qui ait des caracteacuteristiques geacuteomeacutetriques compatibles avec les speacutecifications meacutecaniques Ces speacutecifications meacutecaniques eacutetant contraignantes compte tenu de la strateacutegie envisageacutee

Crsquoest pourquoi nous avons seacutelectionneacute un moteur un peu surdimensionneacute pour notre application toutefois cela va dans le bon sens comme nous sommes obligeacutes de mettre un renvoi drsquoangle ce qui va augmenter les pertes et lrsquoinertie Donc ce surdimensionnement devrait palier aux impreacutevus et combler nos neacutegligences

c Choix possibles

Gracircce aux informations qui preacutecegravedent on a pu choisir 3 Reacutefeacuterences bull Un motoreacuteducteur de chez MDP-Motor avec une vitesse en charge de 309 trmin-1 et

un couple de 057 Nm reacutefeacuterence AMAX32GHPPLG42S prix unitaire TTC 310 euro (avec -20 en tant que participant agrave la Coupe) disponibles sous 12 semaines longueur sans arbre de 142 mm

bull Un motoreacuteducteur de chez MDP-Motor avec une vitesse en charge de 559 trmin-1 et un couple de 060 Nm reacutefeacuterence RE035GPLG52 prix unitaire TTC 337 euro (avec -20 en tant que participant agrave la Coupe) disponibles de suite longueur sans arbre de 144 mm

bull Un motoreacuteducteur de chez Faulhaber avec une puissance de 45 W reacutefeacuterences moteur 2657 reacuteducteur seacuterie 26 Rr =14) prix unitaire TTC 507 euro disponibles de suite longueur sans arbre 125 mm

Voir en annexes pour les caracteacuteristiques de ces reacutefeacuterencesAux vues des longueurs obtenues il nous est rapidement apparu qursquoune transmission

directe Motoreacuteducteur Roue nrsquoeacutetait pas envisageable du fait drsquoune longueur totale minimum de (125 + 30) 2 = 310 mm avec 125 la longueur drsquoun motoreacuteducteur 30 la largeur estimeacutee drsquoune roue Nous avons donc opteacute pour une solution agrave renvoi drsquoangle

d Choix deacutefinitif

Gracircce aux caracteacuteristiques preacuteceacutedentes nous avons choisi les RE035GPLG52 du fait de leurs disponibiliteacute caracteacuteristiques et prix En ce qui concerne la transmission par renvoi drsquoangle nous avons opteacute pour des systegravemes deacutejagrave tout fait qui permettent une plus grande preacutecision un meilleur rendement et un meilleur rapport qualiteacute prix que les montages artisanaux Voici la reacutefeacuterence que nous avons retenue

bull Reacutefeacuterence 748-437 chez Radiospares ou B332312 chez HPCeurope avec les caracteacuteristiques suivantes Rr = 1 C max = 068 Nm V max = 1500 trmin-1 η = 094 prix RS 5750 euro piegravece et prix HPC 52 euro piegravece (avec -10 en tant que participant agrave la Coupe) (Voir les autres caracteacuteristiques en annexes)Pour des raisons de disponibiliteacute nous avons commandeacute ces 2 piegraveces chez

Radiospares En ce qui concerne la liaison entre lrsquoarbre moteur et lrsquoarbre de la transmission nous

avons deacutecideacute drsquousiner un accouplement rigide dont les plans se trouvent en annexes Du coteacute moteur le blocage en rotation est assureacute par une vis de pression qui se trouve dans la gorge preacutevue initialement pour la clavette De lrsquoautre coteacute nous avons usineacute un meacuteplat sur lrsquoarbre du reacuteducteur meacuteplat sur lequel vient appuyer une autre vis de pression

3 Les supports des moteurs

A lrsquoorigine nous avions penseacute mettre les moteurs et les roues coaxiaux nous avions donc imagineacute un systegraveme de bride qui permettrait de bloquer le moteur selon 2 axes de translation et 2 axes de rotation gracircce agrave 2 vis de serrage associeacutee agrave une eacutequerre qui permettait le blocage selon le dernier axe de translation et de rotation Le tout eacutetait fixeacute sur une plaque de fond qui constituerait la base du robot

Voici donc a quoi ressembler cette bride (pour un moteur)

Bride de maintien pour moteur de faible longueur

Bride monteacutee sur la plaque de fond avec un moteur

Ensuite lorsque nous sommes passeacutes agrave la solution avec renvoi drsquoangle nous avons deacutecideacute drsquousiner une piegravece certes complexe mais qui proposait une universaliteacute notamment au niveau des diffeacuterentes positions des moteurs (verticale et horizontale) aspect qui satisfait pleinement au cahier des charges Cette piegravece que par la suite nous appellerons Bloc Moteur doit permettre la mise et le maintien en position du motoreacuteducteur la mise et le maintien en position du reacuteducteur la fixation de lrsquoensemble au sein du robot notamment sur la plaque de fond

Apregraves une petite eacutetude nous sommes arriveacutes agrave une piegravece de ce type

Bloc moteur pour la solution avec renvoi dangle

Cette nouvelle piegravece agrave de nombreux avantages

bull Elle nous permet de pouvoir incorporer le renvoi drsquoangle bull De maintenir les piegraveces entre-elles et de limiter les efforts directs sur les

diffeacuterents eacuteleacutementsbull Drsquoecirctre installeacute agrave lrsquohorizontale ou agrave la verticale

Effectivement lors de la conception du bloc moteur nous avons penseacute aux anneacutees futures et nous avons donc preacutevu un montage des moteurs agrave la verticale ou agrave lrsquohorizontale

En position verticale

En position horizontale

4 Les roues

Comme vu lors de la veille technologique les chenilles ont quasiment disparu de la compeacutetition Ceci est ducirc au fait que cette technologie est difficile agrave mettre en œuvre et que les regraveglements proposent des aires de jeux totalement planes

Or cette anneacutee un fosseacute fait son apparition dans le regraveglement Ce fosseacute de 36 mm de profondeur vient seacuteparer deux aires de jeu Une neacutecessiteacute de traverser le fosseacute apparaicirct donc pour aller renverser les quilles de lrsquoadversaire

Deux solutions sont alors possibles bull Traverser sur le pont aleacuteatoirebull Traverser le fosseacute

Si nous choisissons de traverser par le pont lrsquoideacutee de garder notre systegraveme de roues est correcte par contre un systegraveme agrave chenille permettrait de passer par le fosseacute

Apregraves reacuteflexion de lrsquoeacutequipe PR et des membres de la Coupe E=M6 la solution de traverser par le pont est retenue Ce qui nous a conduit tout droit vers la solution agrave roues

Les roues utiliseacutees sont des roues de roller de diamegravetre 80mm et drsquoune largeur de 22mm Ces roues sont relieacutees agrave lrsquoarbre drsquoun renvoi drsquoangle par lrsquointermeacutediaire drsquoun accouplement en aluminium

5 La base

Pour la base du robot il nous a parut indispensable de dimensionner la plaque de fond en eacutepaisseur De plus afin de maintenir la solution de modulariteacute de lrsquoensemble moteurs ndash roues nous avons deacutecideacute de fixer les deux supports moteurs sur un platine qui sera elle-mecircme fixeacutee agrave la plaque de fond du robot

Premiegraverement nous avons effectueacute un dimensionnement succinct de la platine

a Reacuteaction drsquoappui

0=sum Fx OK

0=sum Fy qLRbRaorRbRaqL210 =+=++minus

qLRa21=

AB = 027 m = L

P = mg P = 15 x 10 = 150 N

Q = 150 N270 mm soit q = 555 Nm

Bille folle

Accouplement

Bloc moteur

Renvoi drsquoangle

Platine

Base du robot

Motoreacuteducteur

Roue

b Moment de flexion

0 =sum= cMMf

02

sup2 =minus+ RaxqxMf

sup221

21 qxqLxMf minus=

c Flegraveche

)( xMfEIY =

sup221

21 qxqLxEIY minus=

161sup2

41 3 CqxqLxEIY +minus=

21241

121 43 CxCqxqLxEIY ++minus=

d Conditions aux limites

Y (x=0) = 0 C2 = 0

Y (x=L) = 0 012412

44

=+minus LCqLqL

241

4qLLC =

241

3qLC =

On obtient donc

xqLqxqLxEIY 343

241

241

121 +minus=

De mecircme

+minus=

242412

343 xLxLxEIqY

On sait que bull E = 210 000 10^6bull Y = 1 10^-3 mbull Q = 555 Nmbull L = 027 m

bull12

3bhI = b = 006 m

+

minus

=24

22416

128

343 LL

LLL

EYqI

36

4

0010102100000601052155512timestimes

timestimes=minus

h

Et enfin on trouve h lrsquoeacutepaisseur de la platine h= 43 mm

Apregraves reacuteflexion nous nous sommes rendu compte que ce calcul nrsquoeacutetait pas rigoureux car nous avons consideacutereacute la theacuteorie des poutres or dans notre cas nous ne pouvons satisfaire cette theacuteorie (Longueur de la section = 10 x la largeur de la section)

Il nous faut donc utiliser un modegravele plus preacutecis crsquoest pourquoi nous avons deacutecideacute de faire un calcul par eacuteleacutements finis sous Ideacuteas Ainsi nous trouvons une eacutepaisseur h = 32 mm

Il nous faut donc une platine de plus de 3 mm Etant donneacute que la platine sera solidairement fixeacutee agrave la base du robot nous avons deacutecideacute de prendre une eacutepaisseur de platine de 2 mm et une eacutepaisseur de base de robot de 2 mm Nous obtenons donc une eacutepaisseur totale de 4 mm Ainsi nous devrions avoir sous une charge de 15 kg moins drsquoun millimegravetre de flexion de la base du robot

6 Reacutesultats

Assemblage en position horizontale

Vue eacuteclateacutee en position verticale

Photo de lrsquoassemblage roues ndash blocs moteurs ndash moteurs ndash platine

Partie C Lrsquoeacutelectronique20 Les batteries

Afin de pouvoir choisir les batteries approprieacutees agrave notre application nous devons dans un premier temps faire une estimation de la consommation drsquoeacutenergie totale avec les pointes de courant envisageacutees dans notre robotIl est agrave noter que nous ne connaissons pas encore en deacutetail tous les eacuteleacutements annexes qui seront implanteacutes dans le robot comme par exemple les capteurs et actionneurs diverses qui seront choisis en fonction des objectifs technologiques atteints ou non de lrsquoassociation et de la strateacutegie finaleDans le but de pouvoir utiliser agrave nouveau dans lrsquoavenir notre base roulante nous avons choisi de surestimer les besoins en eacutenergie de sorte agrave ne pas ecirctre pris au deacutepourvu

La consommation pourrait se deacutecomposer ainsi - 2 moteurs de 24V sous 21A soit 1008 Watts pendant 100 du temps- 3 actionneurs de 21 Watts chacun soit 63 Watts pendant 50 du temps- 3A pour lrsquoeacutelectronique sous 5V soit 15 Watts pendant 100 du temps (Asservissement carte de commandes capteurs)

Ce qui nous fait au total une consommation maximale ~180 WattsLa consommation permanente devrait ecirctre ~147 Watts permanents il faut donc que les batteries puissent deacutebiter un courant de ~6 A sous 24 V durant le fonctionnement du robot

Apregraves une longue recherche on a pu reacutealiser le tableau comparatif des batteries suivant

typeDensiteacute

deacutenergie (WhKg)

Densiteacute deacutenergie (WhL)

auto-deacutecharge (mois)

voltage dune cellule (V)

temps de charge rapide

plomb 35 111 5 agrave 10 2 8h agrave 15h

NiCd (Nickel Cadnium) 50 94 10 agrave 20 12 1h30min

NiMH (Nickel Metal Hydride) 80 135 20 agrave 30 13 2h agrave 4h

Lithium Ion 100 196 5 agrave 10 36 2h agrave 4h

Lithium polymer 150 200 5 agrave 10 36 2h agrave 4h

AlKaline rechargeable 80 15 2h agrave 3h

type

cycle de charge-deacutecharge avant

que capaciteacute passe de 100 agrave

80

Courant max Courant max pic effet meacutemoire estimation

(euroWh) prixcycles

plomb 200 agrave 300 02C 05C M 0895 0003

NiCd (Nickel Cadnium) 1500 1C 20C H 416 0003

NiMH (Nickel Metal Hydride) 300 agrave 500 05C 5C L 2 0004

Lithium Ion 500 agrave 1000 1C 2C L 8 0008

Lithium polymer 300 agrave 500 1C 2C agrave 5C L 32 0006

AlKaline rechargeable 50 02C 05C H 178 0036

Effet meacutemoire L (Low) M (Medium) H (High)Courant max C signifie capaciteacute par exemple une batterie qui peut deacutelivrer un courant max de 1C de 4Ah pourra donc deacutelivrer 4A au maximum sans risque de deacuteteacuterioration

Nous nous sommes inteacuteresseacutes au courant maximum et au temps de charge rapide pour notre choix de batteriesLe type de batterie qui semble le plus approprieacute pour nous est le type Nickel-Cadnium parfaitement adapteacute au pic drsquoappel de courant que provoquent des moteurs pouvant supporter des charges rapides en 1h30min seulement afin de devoir preacutevoir trop de jeux de batteries diffeacuterents

Les batteries LI-Ion ou LI-Polymer preacutesentent une densiteacute eacutenergeacutetique tregraves inteacuteressante mais leur prix est beaucoup plus eacuteleveacute agrave lrsquoachat et de plus dans notre application roulant sur un sol peu accidenteacute la masse pouvant ecirctre transporteacutee est suffisante pour le type NiCd

Les batteries LI-Ion ou LI-Polymer sont plus adapteacutees agrave lrsquoaeacuteromodeacutelisme ou au petit appareil eacutelectroniqueQuant aux batteries au plomb qui sont vraiment bon marcheacute le courant maximum supporteacute est trop faible est supposerait drsquoavoir une forte capaciteacute

Nous voulons avoir une autonomie de 30 minutes il nous faut donc une eacutenergie de 735 WhOr sous 24 V les batteries doivent avoir une capaciteacute de ~3 AhComme les batteries NiCd peuvent deacutebiter un courant maximum de 1C (une fois leur capaciteacute) nous devons donc prendre des batteries de 6Ah sous 24 V ce qui nous donnera une autonomie de 1 heure

Il faudra donc soit acheter un bloc accumulateur NiCd de 24 V 6 Ah srsquoil existe dans le commerce soit le reacutealiser nous mecircme en assemblant diffeacuterents eacuteleacutements

Rappelons que lrsquoassociation en seacuterie permet drsquoadditionner les tensions des eacuteleacutements associeacutes et que lrsquoassociation en parallegravele permet drsquoadditionner les courants deacutebiteacutes

Par exemple des eacuteleacutements de 12 V chacun pour 3 Ah srsquoassocieraient ainsi

Soit deux seacuteries de 20 eacuteleacutements eacutequivalentes agrave 24 V et faisant une capaciteacute de 3 Ah chacune

Il est possible de reacutepartir les accumulateurs en diffeacuterents paquets pour faciliter le rangement dans le robot ou reacutepartir la masse ou eacuteventuellement trouver des packs dans le commerce

Dans le cas de lrsquoUV PR le choix des batteries reste pour le moment sur les NiCd mais pour les essais pratiques on utilisera des batteries au plomb que lrsquoon possegravede deacutejagrave drsquoautant plus que les essais sont reacutealiseacutes avec les moteurs de propulsion et lrsquoasservissement seul ce qui

neacutecessite un deacutebit de courant de 24105 = 4375 A sur 2 batteries soit asymp2187 A

Comme les batteries au plomb peuvent deacutebiter 02C il nous en faudrait des de asymp 109 Ah

Or les essais de la base roulante ne seront que de courtes dureacutees et lrsquoon se contentera donc drsquoutiliser des batteries de 6 Ah pour des raisons de volume mecircme si elles ne sont pas vraiment bien dimensionneacutees

21 La commande des moteurs

Dans un premier temps nous verrons un bref reacutecapitulatif des cartes et modules drsquoasservissement du commerce

Pour la commande les moteurs plusieurs solutions ont eacuteteacute envisageacutees - Un asservissement lsquotout faitrsquo analogique modules laquo Escap raquo- Une solution lsquoartisanalersquo carte avec asservissement numeacuterique- Un asservissement lsquotout faitrsquo numeacuterique circuits laquo LM629 raquo

a Comparatifs des modules drsquoasservissement et calcul des correcteurs

Veille technologique sur les systegravemes drsquoasservissement utiliseacutes par les diffeacuterentes eacutecoles de la coupe E= M6

Le but de cette partie est drsquoeacutetudier les principales techniques drsquoasservissement utiliseacutees par les eacutecoles de la Coupe E=M6 Ce document est loin drsquoecirctre exhaustif et servira de base agrave compleacuteter et actualiser pour les semestres et eacutequipes prochaines

Apregraves une eacutetude sur plus drsquoune trentaine drsquoeacutecoles il ressort trois formes drsquoasservissement la plus utiliseacutee agrave 85 est du type PID en majoriteacute reacuteduit au PI ensuite viennent les microcontrocircleurs PIC associeacutes au PID et les modules AVR nous allons par la suite deacutetailler ces trois solutions Il existe eacutegalement des systegravemes de controcircle dits agrave retour drsquoeacutetat jamais utiliseacutes jusqursquoagrave preacutesent pour la Coupe crsquoest pourquoi nous ne deacutevelopperons pas son approche

3 Systegraveme PID

httpwwwancrorgfichtechactionpidindexhtm

a Principe

Pour pouvoir tester un asservissement il faut dabord reacutealiser une plate-forme de deacuteveloppement le plus geacuteneacuteralement du type suivant Mais pour commencer un brin de theacuteorie illustreacute par des exemples Le scheacutema de principe est repreacutesenteacute ci-dessous

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

Nous avons bien un scheacutema en boucle fermeacutee puisque la sortie du systegraveme est reacuteinjecteacutee dans lentreacutee Les trois blocs bleus correspondent chacun agrave une fonctionnaliteacute Ki est le coefficient inteacutegral Kp le coefficient proportionnel et Kd le coefficient deacuteriveacute Chacun de ces coefficients a une fonctionnaliteacute bien preacutecise Commenccedilons par le plus simple le proportionnel

b Asservissement P

Lasservissement proportionnel est essentiel au fonctionnement du PID Il permet essentiellement de donner de la puissance au moteur Voici quelques reacutesultats dexpeacuterimentations avec Ki=0 et Kd=0

La courbe noire repreacutesente la consigne que lon deacutesire atteindre (Ud) cest un eacutechelon de valeur 32 La courbe bleue repreacutesente la vitesse reacuteelle du systegraveme (Y) Comme vous pouvez le constater plus Kp est grand plus le systegraveme converge vite vers sa valeur finale Mais en contrepartie pour des valeurs de Kp trop grandes le systegraveme oscille Mais lagrave nest pas notre plus gros problegraveme en effet sur ces courbes on voit nettement que la vitesse du moteur natteint jamais la vitesse deacutesireacutee Cest ce que lon appelle lerreur statique elle correspond agrave la diffeacuterence entre la vitesse reacuteelle et la vitesse deacutesireacutee en reacutegime eacutetablie (une fois que le systegraveme sest stabiliseacute) Pour compenser cette erreur statique on rajoute le terme inteacutegral

c Asservissement PI

Le correcteur inteacutegral sert principalement agrave supprimer lerreur statique Lideacutee principale est de charger ou inteacutegrer lerreur depuis le deacutebut et dajouter cette erreur agrave la consigne jusquagrave ce quelle devienne nulle Lorsque cette erreur est nulle le terme inteacutegral se stabilise et il compense parfaitement lerreur entre la consigne et la vitesse reacuteelle Deacutemonstration en image

On voit cette fois-ci que le terme inteacutegral a bien fonctionneacute et que lerreur statique est nulle On constate aussi que plus le gain Ki est grand plus le systegraveme converge vite En revanche plus Ki est grand plus le systegraveme oscille et plus le deacutepassement est grand Sur des asservissements en position le terme deacuteriveacute permet de diminuer le deacutepassement et les oscillations Nous allons voir que dans notre cas nous avons quelques problegravemes

d Asservissement PID ou agrave avance de phase

On a donc rajouteacute le terme deacuteriveacute comme tout bon livre dautomatique le preacuteconise et voici les reacutesultats

Cette fois ci jai choisi de repreacutesenter la tension appliqueacutee au moteur (U) le problegraveme est bien plus flagrant ici Vous voyez que lorsque lon ajoute le terme deacuteriveacute la commande est extrecircmement bruiteacutee En reacutealiteacute on somme agrave la commande la deacuteriveacutee de la vitesse reacuteelle que lon multiplie par un gain Kd La deacuteriveacutee dune vitesse est une acceacuteleacuteration cela signifie que lon amplifie tous les bruits dacceacuteleacuteration et en plus on les multiplient par un gain Kd Donc rajoute du bruit amplifieacute dans la commande Alors pourquoi mettent t-ils ce terme deacuteriveacutee dans les livres Simplement parce que ce bruit est typique des asservissement en vitesse Sur des asservissements en position ce problegraveme est moins freacutequent car la deacuteriveacutee de la position est la vitesse

Ici le problegraveme eacutetait visible parce que nous avons reacutealiseacute toutes ces courbes sur un systegraveme reacuteel Si nous avions simuleacute ces reacutesultats lacceacuteleacuteration naurait pas eacuteteacute bruiteacutee et les courbes auraient eacuteteacute parfaites Pour impleacutementer ce PID sur notre robot il a fallu programmer en numeacuterique une deacuteriveacutee et une inteacutegrale

e PID numeacuterique et reacuteglage

Notre premier problegraveme est de programmer le terme inteacutegral Il existe une meacutethode qui consiste agrave estimer la surface entre deux eacutechantillons mais dans notre cas nous avons des problegravemes dus aux bruits et agrave la freacutequence deacutechantillonnage Alors il faut sommer toutes les erreurs depuis de deacutebut

Notre second problegraveme est de programmer le terme deacuteriveacute La meacutethode ici est de calculer la pente entre deux eacutechantillons de e Theacuteoriquement cela revient agrave faire le calcul suivant

Avec la peacuteriode deacutechantillonnage Pour faire un asservissement numeacuterique il faut impeacuterativement avoir une peacuteriode fixe Pour gagner du temps de calcul geacuteneacuteralement on inteacutegre directement dans le gain Kd

Voici un lalgorithme exemple

Ti = 0 Initialise le terme inteacutegral

for ( i=1 i lt= Nb_cycles i++ )

Init_timers (1) Initialise le timer agrave notre peacuteriode 1 ms

Y = Codeur () Stoque la valeur du codeur dans Y Rst_codeur () Remet le codeur agrave zeacutero Ud = Consigne () Mise agrave jour de la consigne e_old=e Stoque e(t-1) e = Ud - Y Calcul de lerreur Ti = Ti + e Calcul de linteacutegral Calcul du PID U = Kp e Terme proportionnel

+ Ki Ti Terme inteacutegral + Kd ( e - e_old ) Terme deacuteriveacute Moteur (U) On applique la consigne

while ( end_timer() ) On attend la fin de la peacuteriode

Pour le reacuteglage des gains Kp Ki et Kd il existe diffeacuterentes meacutethodes Ici nous lavons fait de maniegravere empirique et le reacutesultats est plutocirct bon Linconveacutenient de ces meacutethodes est quelles demandent un modegravele du systegraveme ce qui est geacuteneacuteralement dur agrave produire Il existe

aussi des composants programmables qui permettent de faire directement lasservissement numeacuterique (HCTL 1100 LM629) Ils sont exactement baseacutes sur la meacutethode preacutesenteacutee ici

Pour ce qui est du reacuteglage des correcteurs lrsquooptimal est drsquoutiliser la meacutethode de lrsquooptimum dissymeacutetrique une fois que lrsquoon agrave reacutealiseacute le modegravele du systegraveme La plus part des eacutecoles ne reacutealisent pas ce modegravele et ce limite donc agrave une correction empirique en reacutealisant des tests ou en utilisant la meacutethode Ziegler-Nichols agrave partir de la reacuteponse agrave un eacutechelon de tension

Par la suite nous rappellerons les meacutethodes de Ziegler-Nichols et de lrsquooptimum dissymeacutetrique

f Les meacutethodes de Ziegler-Nichols

Ces meacutethodes fournissent des reacuteglages pour des correcteurs de type PID (pouvant ne comporter quune action Proportionnelle une action Proportionnelle et une action Inteacutegrale ou les 3 actions simultaneacutement) dont la structure est la suivante

bull MEacuteTHODE DE ZIEGLER NICHOLS TEMPORELLE

Elle est adapteacutee aux systegravemes stables en boucle ouverte qui ont une reacuteponse apeacuteriodique La reacuteponse agrave un eacutechelon unitaire du systegraveme physique doit ecirctre enregistreacutee Diffeacuterentes caracteacuteristiques de la reacuteponse obtenue sont mesureacutees

Le modegravele approcheacute utiliseacutee par Ziegler Nichols comporte une constante de temps et un retard pur ou bien un retard pur et un inteacutegrateur

Si le systegraveme physique comporte un inteacutegrateur les mesures de a et de L demeurent disponibles sur le deacutebut de la reacuteponse

Les reacuteglages suggeacutereacutes par la meacutethode temporelle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 1a - -correcteur PI 09a 3L -

correcteur PID 12a 2L L2Concernant le raffinement des reacuteglages augmenter Kp ou diminuer Ti augment les

oscillations de la sortie

bull MEacuteTHODE DE ZIEGLER NICHOLS FREacuteQUENTIELLE

Cette meacutethode convient particuliegraverement bien aux systegravemes instables en boucle ouverte pour lesquels la meacutethode temporelle nest pas envisageable Lexpeacuterimentation se fait sur le systegraveme boucleacute avec un simple gain proportionnel qui doit ecirctre stable Le principe est de modifier la valeur du gain par essai-erreur jusquagrave atteindre la limite de stabiliteacute (pheacutenomegravene de pompage) Il reste agrave relever le gain limite K0 obtenu et agrave mesurer la peacuteriode T0 des oscillations de la reacuteponse obtenue

Les reacuteglages suggeacutereacutes par la meacutethode freacutequentielle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 05 K0 - -correcteur PI 045 K0 08 T0 -

correcteur PID 06 K0 05 T0 0125 T0

A la page Internet suivante vous trouverez un simulateur de cette meacutethode

httpwww-hadocensieginpgfrhadocateliersreglageEmpCorrReglEmpCorrDroithtml

g Meacutethode de lrsquooptimum dyssimeacutetique (voir poly MC06 Chap 5 et 8)

Cette meacutethode srsquoapplique une fois le modegravele reacutealiseacute et mis sous la forme drsquoun second ordre

et on obtient le correcteur PI

pour une surtension deacutesireacutee QdB

Q = 10^(QdB20)λ= radic(Qsup2(Qsup2-1))Δφ = arcos (1 λ)α= ((1+sin(Δφ))cos(Δφ))sup2ωN= ωQαω0= ωQradicαKP= ω0 λ KQ

4 Les microcontrocircleurs

a Avant propos

Cette fiche se veut ecirctre sous la forme dun projet Un projet non termineacute ougrave chacun peut apporter sa contribution (ameacuteliorations adaptations corrections etc)De ce fait ces pages sont ameneacutees agrave eacutevoluer et vous-mecircme pourrez participer agrave leur eacutevolution

Pourquoi avoir choisit un tel mode de travail Tout simplement parce que le sujet est vaste et que des variations sont possibles suivant lutilisation quen feront les diffeacuterentes personnes

Le but de ce projet est de reacutealiser une double asservissement de vitesse (type PID) de deux moteurs sur un seul PIC (type 16F877) Lutiliteacute majeure eacutetant de faire rouler un robot bien droit et agrave la bonne vitesse A quoi ccedila sert plus preacuteciseacutement

Avec un seul PIC ce projet permet aux roboticiens amateurs et chevronneacutes de reacutealiser facilement leur asservissement de vitesse de moteurs agrave courant continu (en geacuteneacuteral les moteurs de propulsions de leur robot mais ccedila peut ecirctre bien sucircr dautres moteurs) La commande de lasservissement pourra se faire agrave terme en liaison seacuterie (deacutejagrave fait) I2C ou par bus ISA

b Avantages

Il existe bien sucircr dautres systegravemes qui gegraverent un asservissement de vitesses Des systegravemes professionnels existent comme les LM629 Ils ont linconveacutenient decirctre cher (et ce pour un seul moteur) et relativement complexes

Pourquoi chercher un fusil pour chasser des moustiques Le double asservissement sur PIC vous coucircte le prix dun PIC soit environ 15Euro pour un 16F877 actuellement et ce pour 2 moteurs Ce double asservissement se veut relativement simple De plus vous pouvez en modifier le programme et ladapter agrave vos besoins

c Inconveacutenients

Les personnes qui auront les moyens preacutefeacutererons opter pour un systegraveme professionnel certainement pour des raisons de fiabiliteacute mais cest agrave leurs risques et peacuterils -)La puissance du PIC eacutetant limiteacutee il ne peut pas reacutealiser des PID trop rapides ou trop complexes Il y a en particulier une limitation sur le nombre dimpulsions par seconde quil est capable de geacuterer

Le langage utiliseacute eacutetant le C il faut une licence du logiciel pour pouvoir modifier et recompiler le code source c Mais le projet se veut geacuteneacuterique Une version donneacutee pourra ecirctre utiliseacute sans recompilation en respectant quelques contraintes

d Asservissement

En fait on pourrait imaginer quil suffirait denvoyer au moteur une puissance constante pour quil tourne tout le temps agrave la mecircme vitesse Ce nest pas vrai du tout Tout dabord 2 moteurs dune mecircme seacuterie nauront pas forceacutement le mecircme comportement Ensuite parce que les niveaux de tension ou dautre diffeacuterences eacutelectriques peuvent jouer Enfin parce que des influences exteacuterieures (obstacles frein meacutecanique du robot) peuvent jouer

Du coup il est tregraves difficile de faire aller un moteur agrave la vitesse voulue Parfois ce nest pas gecircnant mais ccedila peut lecirctre Un exemple classique est le robot avec 2 roues motrices type char une configuration qui est tregraves courante Mais pour que ce robot aille droit il faut que les 2 moteurs aillent exactement agrave la mecircme vitesse

La solution est de faire un asservissement Cest a dire moduler dynamiquement la puissance envoyeacute aux moteurs suivant leur vitesse mesureacutee afin dadapter celle-ci agrave ce qui est deacutesireacuteeCela implique un eacuteleacutement tregraves important pour asservir il faut un capteur de vitesse du moteur En geacuteneacuteral il sagit dun compte-tour qui enverra N impulsions (ou pas) par tour de moteur Ensuite un programme va calculer en fonction de la vitesse mesureacutee du moteur la puissance agrave utiliser

Les asservissements sont constamment en train de chercher leacutequilibre Il faut bien comprendre quils mettent un certain temps agrave latteindre et ce dernier peut aussi ecirctre instable si lasservissement est mal reacutegleacute

Lasservissement quon va utiliser ici est un classique PIDou plus preacuteciseacutement un PI car pour des raisons de vitesses de traitement la composante deacuteriveacutee est laisseacutee de coteacute (mais rien de difficile agrave rajouter)

Le PID ou Proportionnel Inteacutegrale Deacuteriveacute est une meacutethode de calcul dasservissement

Soit Kp Ki et Kd les coefficients proportionnels inteacutegrale et deacuteriveacuteSoit e lerreur Vitesse mesureacutee moins vitesse demandeacuteeSoit Ti le terme inteacutegral dabord initialiseacute agrave 0

Consigne a appliquer (PWM) = Kp e + (1Ki) (Ti += e) + Kd (e - e(t-1))

On pourrait dire des pages et des pages sur le PID et ce nest pas mon but ici Merci de vous reporter au lien ci-dessous

Pour plus de deacutetails sur le PID la page de lANCR httpwwwancrorgfichtechactionpidindexhtmChez les Fribottes la Simulation de Jean-Claude httpwwwwikifreefrWiKiFriindexphpSimulateur20de20PID

e Le pic

Le PIC est un petit microcontrocircleur assez bon marche et simple a programmer comme a utiliser

La aussi je vais pas rentrer dans les deacutetails vous pouvez vous reporter agrave la bdtech du site Fribotte et en particulier aux cours de Bigonoff

Le PIC est ici programmeacute en C voir la page Fribotte ici Lutilisation du langage C permet dalleacuteger consideacuterablement le deacuteveloppement dune application compliqueacutee

2 Module AVR

httpwwwenseirbfr~matzfravrphp

Tregraves peu de renseignement sur ce module sinon ces informations drsquoun eacutetudiant de lrsquoEnseirb

Depuis plusieurs anneacutees je participe agrave la coupe de robotique E=M6 dont lobjectif pour chaque eacutequipe est de fabriquer un robot autonome devant se conformer agrave un regraveglement Pour plus dinfos vous pouvez vous rendre sur le site de mon eacutequipe Microb Technology ou bien sur le site de Planegravete Sciences lorganisme beacuteneacutevole qui organise cette compeacutetition

Jai deacutecouvert en 2001 les microcontrocircleurs Atmel AVR auxquels je me suis beaucoup attacheacute dune part parce quils sont assez performants pour des microcontrocircleurs 8 bits mais aussi et surtout car le fameux compilateur libre GCC est capable de compiler du code C pour ces petites becirctes Il existe de surcroicirct plusieurs outils libres permettant de les programmer de les simuler etc

Le but de ce projet est donc de deacutevelopper des modules servant dinterface geacuteneacuterique avec le hardware du microcontrocircleur quel que soit la version (par exemple les UART inclus dans les AVR AtMega sont diffeacuterents de ceux preacutesents dans les petits AVR) et de deacutevelopper des modules utiles pour certaines utilisations usuelles et pas seulement pour la coupe E=M6 (codage de hamming asservissement chiffrement etc)

Vous pouvez contacter leacutequipe de deacuteveloppement agrave avr-devdroids-corporg Pour le moment aucune release na eacuteteacute faite mais le travail est deacutejagrave bien avanceacute Chaque soir un screenshot du CVS est reacutealiseacute Il peut ne pas compiler mais normalement ccedila devrait fonctionner Voici le lien

3 Modules drsquoasservissement analogique laquo Escap raquo

Nous avons essayeacute de reacutecupeacuterer les cartes de commande Escap pour moteurs Escap qui avaient eacuteteacute utiliseacutees en 96 et 98 avec succegraves

Nous les avons monteacutes sur une base roulante qui pesait en tout 74 kgVoici grosso-modo leurs avantages et leurs inconveacutenients (pour les notices techniques voir le rapport 96 ou 98)

a Avantages

Cette carte inclut directement un asservissement avec correcteur PI la commande de puissance les ponts en H

Elle est tregraves facile agrave utiliser Elle est speacutecialement conccedilue pour les moteurs Escap que nous avons donc

parfaitement adapteacutee

b Inconveacutenients

Les moteurs ne fonctionnent correctement que sous 24v Les cartes et les moteurs semblent assez gourment Les cartes nantis de gros radiateurs sont relativement encombrantes Les tachymegravetres monteacutes sur les moteurs ne donnent pas une indication de position

mais de vitesse (qui plus est en analogique)

Nous avons preacutefeacutereacute refaire la partie commande car celle de 1996 souffrait de quelques deacutefauts (cf rapport 1996)

La conversion numeacuterique analogique

Pour reacutealiser la conversion numeacuterique analogique nous avons choisit un pont agrave reacutesistance R-2R

Nous pouvons consideacuterer que chaque bit est relieacute agrave un geacuteneacuterateur ideacuteal de tension (qui deacutelivre 0v ou 5v) Par conseacutequent la reacutesistance eacutequivalente quelque soit lrsquoeacutetat des bits et quelques soit le nombre de bits vue entre la sortie et la masse sera eacutegal agrave R

La tension Vs en fonction de lrsquoeacutetat des bits sera

Ce type de CAN eacutetant tregraves classique nous nrsquoindiquerons pas les deacutemonstrations toutefois vous pourrez les trouver tregraves facilement sur Internet ou sur le Cd-rom drsquoannexes joint au dossier

Le montage de Thevenin eacutequivalent est donc

Nous avons jugeacute qursquoune discreacutetisation sur 8 bits eacutetait un peu superflu crsquoest pourquoi nous nous contenterons de 4 bits (ce qui repreacutesentent quand mecircme 16 niveaux de vitesse)

bull Lrsquoadaptation du niveau de tension

Nous avons agrave la sortie du CAN une tension qui srsquoeacutetend de 0 agrave 5v or la commande des cartes Escap ce fait entre -5v et +5v

On peut voir cette adaptation comme lrsquoajout drsquoun offset de -25v et une amplification de gain 2

Voici le montage reacutealisant cette conversion

M1 est un montage suiveur qui lsquorecopiersquo la tension aux bornes de P1 mais sous une impeacutedance constante et eacutegale agrave 4R En 1996 lrsquoeacutequipe avait brancheacute P1 directement sur M3 mais cela a pour inconveacutenient de faire varier agrave la fois lrsquooffset et la penteLe potentiomegravetre P1 permet drsquoajuster lrsquooffset (permet par conseacutequent de reacutegler lrsquoarrecirct complet de moteur) (La valeur theacuteorique de lrsquooffset est 5V (cf formule en M3))

M2 est aussi un montage suiveur Le potentiomegravetre P2 permet drsquoajuster la pente (qui doit avoir un coefficient directeur de 2) Comme M2 est connecteacute au CAN dont la reacutesistance interne est de R P2 doit ecirctre a peut precirct eacutegal agrave R de la sorte la branche aura une reacutesistance eacutequivalente de 2R

M3 Sommateur (Vs = - 2 (Ve + Voffset))

Qursquoelle valeur choisir pour R

Theacuteoriquement on peut choisir nrsquoimporte quelle valeur pour R mais en pratique si R est trop petite une intensiteacute importante serait consommeacutee sans raison et si R est trop grande la forte impeacutedance du montage le rendra tregraves sensible aux parasites (secteur moteurshellip)Ce montage a eacuteteacute testeacute et fonctionne correctement pour R=5k les amplificateurs opeacuterationnels utiliseacutes sont des LM324 mais drsquoautres seraient tout agrave fait envisageables (peu de contraintes de vitesse et de tensions de deacutechets)

4 Conclusion

Nous avons preacutefeacutereacute ne pas utiliser les cartes Escap car les moteurs ne renvoient pas une position sous forme drsquoimpulsion mais une vitesse Etant donneacute que nous avions envisageacute un repeacuterage par odomeacutetrie cela compliquait consideacuterablement la tache

Toutefois il faut savoir que cette solution a eacuteteacute testeacutee et fonctionne tregraves bien (bonne preacutecision bonne dynamique) ainsi dans le cas ougrave le repeacuterage ne se fait pas par odomeacutetrie mais des balises exteacuterieures sachez que cette solution est tregraves pratique agrave utiliser En effet pour imposer une vitesse il suffit au microcontrocircleur drsquoappliquer sur un port un mot binaire correspondant agrave la vitesse voulue hellip et crsquoest tout La carte Escap se charge du reste

5 Carte drsquoasservissement numeacuterique laquo artisanale raquo

La carte reacutealiseacutee baseacutee sur un microcontrocircleur PIC 16F877A srsquoest aveacutereacutee fonctionnelle mais les tests drsquoalgorithmes drsquoasservissement nrsquoont pas eacuteteacute effectueacutesEn effet lrsquoutilisation de cette solution neacutecessite un microcontrocircleur deacutedieacute agrave lrsquoasservissement capable de communiquer via un protocole agrave deacutefinir avec la laquo carte megravere raquo (centralisant les retours des autres capteurs du robot et agissant sur les diffeacuterents actionneurs en fonction de la strateacutegie)Or afin de limiter le nombre de microcontrocircleurs sur le robot et du fait que lrsquoon dispose drsquoun budget suffisant nous avons deacutecideacute drsquoessayer drsquoutiliser des composants speacuteciaux reacutealisant lrsquoasservissement

Le systegraveme se deacutecompose en

- Un microcontrocircleur pour appliquer la PWM asservir et commander- Une carte de puissance pour chaque moteur baseacutee sur un LMD18200- Une carte compteur drsquoimpulsions pour les codeurs

Afin de favoriser lrsquointeractiviteacute et les reacuteglages jrsquoai ajouteacute une carte afficheur LCD avec 6 boutons sur la carte microcontrocircleur

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 6: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

UV PR Reacutealisation drsquoune base roulanteA04

2 La Coupe de France de Robotique 2005

Cette anneacutee les robots jouent au bowling

Chaque eacutequipe doit construire un ou deux robots entiegraverement autonomes Les matchs se jouent entre deux eacutequipes et durent 1 minute 30

Une couleur de quilles est attribueacutee agrave chaque eacutequipe Sur le terrain 15 quilles de chaque couleur sont disposeacutees aleacuteatoirement Au deacutepart celles-ci se trouvent de lrsquoautre cocircteacute drsquoun fosseacute dans le camp adverse Des ponts permettent de rejoindre lrsquoautre cocircteacute mais ceux-ci sont placeacutes aleacuteatoirement en deacutebut de partie Il est eacutegalement possible drsquoutiliser des balles de type laquo balle de squash raquo pour faire du tir balistique et ainsi espeacuterer faire tomber des quilles agrave distance

Pour gagner la partie les robots doivent renverser le plus de quilles possible Les robots peuvent aussi relever les quilles de la couleur adverse renverseacutees par lrsquoautre eacutequipe

Lrsquoeacutequipe qui a le plus de quilles de sa couleur renverseacutees en fin de match est deacuteclareacutee vainqueur

Illustration de la zone de jeu 2005

Page 6

UV PR Reacutealisation drsquoune base roulanteA04

3 Cahier des charges de lrsquoUV PR

Chaque anneacutee les strateacutegies de locomotions des robots se ressemblent cependant nous partons agrave chaque fois de zeacutero

Crsquoest pourquoi il nous a sembleacute utile drsquoessayer de construire une fois pour toute une base roulante reacuteutilisable et fiable

Nous nous sommes fixeacute comme objectifs principaux

De reacutealiser une base roulante bull Facilement reacuteutilisablebull Fiable

Commandable bull En vitessebull En distancebull En rotation

Caracteacuteristiques bull Pouvant supporter 15kgbull Ne faisant pas plus de 260 mm de large

4 Lrsquoeacutequipe chargeacutee de lrsquoUV PR

Etudiants CARLIER Pierre Emmanuel GM02DE SOUZA Damien GSM05 - CMIDUMAY Damien GM02FONDEUR Germain GM05 - MARSMONTJALON Thomas GI05 - RODRIGUES Sylvain GM05 - MARSTRANNOY Guillaume GM02

Suiveurs Projet

FORGEZ Christophe (laboratoire drsquoeacutelectromeacutecanique de lrsquoUTC)LANFRANCHI Vincent (laboratoire drsquoeacutelectromeacutecanique de lrsquoUTC)

Page 7

UV PR Reacutealisation drsquoune base roulanteA04

Partie A Description geacuteneacuterale de la base roulante

1 Carte megravere

Il srsquoagit de la carte laquo intelligente raquo du robot elle commande le deacuteplacement mais aussi les diffeacuterents actionneurs et capteurs du robot Cette partie correspond agrave

Motorola HCS12 (MC9S12DP256B) Microchip PIC 18F458 Rabbit (RCM3400) PC104 hellip

2 Asservissement

Cette partie correspond au controcircle des actionneurs elle est lrsquointerface entre la carte megravere et les effecteurs Il peut srsquoagir de

Carte de puissance Pont en H Controcircle de vitesse hellip

Page 8

UV PR Reacutealisation drsquoune base roulanteA04

Partie B La meacutecanique 1 Veille technologique

Afin de pouvoir eacuteviter de proposer ou de faire des choses deacutepasseacutees inutiles ou non fiables nous avons proceacutedeacute agrave une petite veille technologique de tout ce qui se fait agrave la Coupe de France de Robotique Pour cela nous nous sommes baseacutes sur le site de lrsquoANSTJ qui est lrsquoassociation qui organise la Coupe de France Sur son site lrsquoANSTJ a recenseacute tous les posters des eacutequipes de la compeacutetition de 2004 Ces posters sont des documents remis agrave lrsquoorganisation en mai 2004 lors de la derniegravere compeacutetition A partir de ces posters nous avons regardeacute comment les eacutequipes avaient fait leur(s) robot(s)

bull Quel systegraveme de deacuteplacement (roues chenilles pattes) bull Quel type de moteurs bull Comment et ougrave les moteurs eacutetaient placeacutes bull Les accouplements (directs ou indirects) bull La forme des robots bull La modulariteacute du laquo bloc moteur raquo

Toutes ces informations sont recenseacutees dans un tableau Excel Ce document est en annexes

Les principales informations recueillies de cette veille sont

bull La plupart des eacutequipes utilisent une liaison directebull La motorisation se fait par des rouesbull Les roues sont placeacutees agrave lrsquoarriegravere du robotbull Les robots sont de formes rectangulaires ou carreacutees

Il faut preacuteciser que ces informations sont relatives au regraveglement de la compeacutetition de 2004 Ces choix sont donc fortement lieacutes au regraveglement On peut noter que dans le passeacute plus de robot avec transmission agrave renvoi drsquoangle existaient

Deux eacuteleacutements sont donc agrave fortement retenir les chenilles ont quasiment disparu et les robots cylindriques sont en forte voie de disparition

Nous tacirccherons donc drsquoeacuteviter ces deux aspects pour la conception de notre base roulante

Page 9

UV PR Reacutealisation drsquoune base roulanteA04

2 Le choix des moteurs

a Technologies

Le regraveglement de la compeacutetition ne laissant pas de reacuteels choix quant agrave la source drsquoeacutenergie utiliseacutee nous nous sommes directement orienteacutes vers des moteurs eacutelectriques Il existe plusieurs familles de moteurs eacutelectriques

bull Les moteurs Brushlessbull Les moteurs agrave Courant Continubull Les moteurs agrave Courant Alternatifbull Les moteurs Pas agrave PasForts de nos expeacuteriences passeacutees les moteurs Pas agrave Pas on eacuteteacute directement mis de

coteacute agrave cause de leur faibles vitesse de rotation et couple En ce qui concerne les moteurs agrave Courant Alternatif leur mise en œuvre est assez compliqueacutee pour des systegravemes embarqueacutes Nous avons donc le choix entre les moteurs Brushless et les moteurs agrave Courant Continu Nous avons opteacute pour les moteurs agrave Courant Continu car ceux-ci sont plus simples agrave controcircler moins coucircteux et mieux connus que les Brushless

b Dimensionnement

Le cahier des charges nous impose les caracteacuteristiques suivantes

- Diamegravetre des roues 8cm- Poids du robot 15 kg- Vitesse maximum drsquoentraicircnement 1ms-1 - Acceacuteleacuteration maximum 1ms-2

Lrsquoassociation avait agrave sa disposition 2 motoreacuteducteurs de types AMAX 26G PLG 26 de chez MDPmotor donc le premier objectif eacutetait de veacuterifier si lrsquoon pouvait se servir de ces moteurs pour reacutepondre aux speacutecifications que lrsquoeacutequipe crsquoeacutetait fixeacute

Nous allons donc vous expliquer la deacutemarche que nous avons suivie

On peut repreacutesenter lrsquoaxe moteur comme ci dessous

Moteur

Reacuteducteur

Palier

Roue

eacutecrasement

Page 10

UV PR Reacutealisation drsquoune base roulanteA04

Tout drsquoabord il faut deacuteterminer la force de reacutesistance au roulement celle-ci va deacutependre essentiellement de deux paramegravetres

- force de frottement essieu palier donneacutee par la relation suivante

rff D

dMgF 22

times

times= micro fmicro Coefficient de frottement essieu palier

rD Diamegravetre de la roue

2d

Rayon de lrsquoessieu

- force drsquoeacutecrasement

re D

fMgF 2timestimes=M Masse du robotf Eacutecrasement (00001 m)

Ce qui nous donne lrsquoexpression de la force de reacutesistance au roulement celle-ci devant ecirctre vaincue par le moteur pour mettre le robot en mouvement

+= fdMg

DF f

rres 2

2 micro

A partir de cette force on peut deacuteterminer le couple reacutesistant permanent agrave vaincre

resr

rp FDC times=2

Pour pouvoir appliquer le principe fondamental de la meacutecanique il nous faut deacuteterminer lrsquoinertie de la charge Afin drsquoobtenir ce paramegravetre nous allons consideacuterer qursquoil y a conservation de lrsquoeacutenergie cineacutetique entre le mouvement de rotation (de la roue) et de la translation (du robot) ce qui nous donne

222

221

21

=rArr=Ω r

ccccDMJMVJ

Si lrsquoon ramegravene cette inertie au moteur cela donne

rcmc

rm

ccmc

rmmccc

kJJJJ

JJ

ηη

η

121

21

2

2

2

2

times=hArrΩ

Ωtimes=

Ω=Ωk Rapport de reacuteduction

rη Rendement du reacuteducteurcJ Inertie de la charge

mcJ Inertie rameneacutee au moteur

Page 11

Maintenant nous avons tous les eacuteleacutements pour eacutecrire le principe fondamental de la meacutecanique

mrpmmmtot CCJ minus=γ

Ici compte tenu de notre application pour deacuteterminer le couple moteur neacutecessaire il faut tenir compte du nombre de moteurs

( )[ ]mrpmmcmmoteur

m CJJnb

C 1 ++= γ

Dans lrsquoapplication le nombre de moteurs srsquoeacutelegraveve agrave deux donc si lrsquoon regarde lrsquoexpression du couple moteur pour chaque phase cela donne

- phase drsquoacceacuteleacuteration

mmaccmacc

r

rpa

r

rmaccm

CP

kC

kDMJC

η

ηγ

η

1

122

1

max

2

2

timesΩtimes=

+times

times

+=

- phase de freinage

mmfrmfr

r

rpfr

r

rmfrm

CP

kC

kDMJC

η

ηγ

η

1

122

1

max

2

2

timesΩtimes=

+times

times

+=

- reacutegime permanent

mmpermmperm

r

rppermm

CP

kC

C

η

η1

21

max

timesΩtimes=

=

Maintenant que toutes les relations ont eacuteteacute mises en eacutevidence on peut regarder les reacutesultats que lrsquoon obtient avec le moteur AMAX 26G en gardant agrave lrsquoesprit que pour lapplication on considegravere que les phases drsquoacceacuteleacuteration seront preacutepondeacuterantes crsquoest pourquoi on dimensionnera les moteurs pour les phases drsquoacceacuteleacuterations

Apparemment le moteur aurait pu convenir si le reacuteducteur avait eu un rapport de reacuteduction plus faible En effet le moteur peut deacutelivrer le couple nominal neacutecessaire mais nous ne permet pas drsquoatteindre les vitesses souhaiteacutees Dans un premier temps nous avions revu nos speacutecifications agrave la baisses envisageacute la meilleure faccedilon de commander le moteur de faccedilon agrave ce que lrsquoon deacutemarre toujours en suivant la limite de puissance imposeacutee par le collecteur meacutecanique Ceci nous aurait permis drsquoavoir la meilleure dynamique du moteur La conseacutequence de ce type de fonctionnement aurait eacuteteacute un eacutechauffement excessif et un vieillissement preacutematureacute du moteur Donc les risques de casse auraient eacuteteacute multiplieacutes

Suite agrave un incident durant les phases de tests un des moteurs crsquoest vu endommageacutes crsquoest pourquoi il agrave fallu dimensionner drsquoautres moteursNous avons donc repris nos calculs avec un nouveau rapport de reacuteduction ce qui nous donne les reacutesultats suivants

Nous avons donc rechercheacute un moteur qui aurait pu avoir ses caracteacuteristiques agrave savoir - Couple nominal 34 mNm- Vitesse nominale 3342 trmin- Puissance nominale 16 W- Alimentation 24V- Reacuteducteur 1 14

Ce qui nous donnerait en sortie de reacuteducteur - Couple nominal 033 Nm- Vitesse nominale 239 trmin

Nous avons eu beaucoup de mal agrave trouver un moteur qui reacuteponde agrave ses exigences de maniegravere preacutecise et qui ait des caracteacuteristiques geacuteomeacutetriques compatibles avec les speacutecifications meacutecaniques Ces speacutecifications meacutecaniques eacutetant contraignantes compte tenu de la strateacutegie envisageacutee

Crsquoest pourquoi nous avons seacutelectionneacute un moteur un peu surdimensionneacute pour notre application toutefois cela va dans le bon sens comme nous sommes obligeacutes de mettre un renvoi drsquoangle ce qui va augmenter les pertes et lrsquoinertie Donc ce surdimensionnement devrait palier aux impreacutevus et combler nos neacutegligences

c Choix possibles

Gracircce aux informations qui preacutecegravedent on a pu choisir 3 Reacutefeacuterences bull Un motoreacuteducteur de chez MDP-Motor avec une vitesse en charge de 309 trmin-1 et

un couple de 057 Nm reacutefeacuterence AMAX32GHPPLG42S prix unitaire TTC 310 euro (avec -20 en tant que participant agrave la Coupe) disponibles sous 12 semaines longueur sans arbre de 142 mm

bull Un motoreacuteducteur de chez MDP-Motor avec une vitesse en charge de 559 trmin-1 et un couple de 060 Nm reacutefeacuterence RE035GPLG52 prix unitaire TTC 337 euro (avec -20 en tant que participant agrave la Coupe) disponibles de suite longueur sans arbre de 144 mm

bull Un motoreacuteducteur de chez Faulhaber avec une puissance de 45 W reacutefeacuterences moteur 2657 reacuteducteur seacuterie 26 Rr =14) prix unitaire TTC 507 euro disponibles de suite longueur sans arbre 125 mm

Voir en annexes pour les caracteacuteristiques de ces reacutefeacuterencesAux vues des longueurs obtenues il nous est rapidement apparu qursquoune transmission

directe Motoreacuteducteur Roue nrsquoeacutetait pas envisageable du fait drsquoune longueur totale minimum de (125 + 30) 2 = 310 mm avec 125 la longueur drsquoun motoreacuteducteur 30 la largeur estimeacutee drsquoune roue Nous avons donc opteacute pour une solution agrave renvoi drsquoangle

d Choix deacutefinitif

Gracircce aux caracteacuteristiques preacuteceacutedentes nous avons choisi les RE035GPLG52 du fait de leurs disponibiliteacute caracteacuteristiques et prix En ce qui concerne la transmission par renvoi drsquoangle nous avons opteacute pour des systegravemes deacutejagrave tout fait qui permettent une plus grande preacutecision un meilleur rendement et un meilleur rapport qualiteacute prix que les montages artisanaux Voici la reacutefeacuterence que nous avons retenue

bull Reacutefeacuterence 748-437 chez Radiospares ou B332312 chez HPCeurope avec les caracteacuteristiques suivantes Rr = 1 C max = 068 Nm V max = 1500 trmin-1 η = 094 prix RS 5750 euro piegravece et prix HPC 52 euro piegravece (avec -10 en tant que participant agrave la Coupe) (Voir les autres caracteacuteristiques en annexes)Pour des raisons de disponibiliteacute nous avons commandeacute ces 2 piegraveces chez

Radiospares En ce qui concerne la liaison entre lrsquoarbre moteur et lrsquoarbre de la transmission nous

avons deacutecideacute drsquousiner un accouplement rigide dont les plans se trouvent en annexes Du coteacute moteur le blocage en rotation est assureacute par une vis de pression qui se trouve dans la gorge preacutevue initialement pour la clavette De lrsquoautre coteacute nous avons usineacute un meacuteplat sur lrsquoarbre du reacuteducteur meacuteplat sur lequel vient appuyer une autre vis de pression

3 Les supports des moteurs

A lrsquoorigine nous avions penseacute mettre les moteurs et les roues coaxiaux nous avions donc imagineacute un systegraveme de bride qui permettrait de bloquer le moteur selon 2 axes de translation et 2 axes de rotation gracircce agrave 2 vis de serrage associeacutee agrave une eacutequerre qui permettait le blocage selon le dernier axe de translation et de rotation Le tout eacutetait fixeacute sur une plaque de fond qui constituerait la base du robot

Voici donc a quoi ressembler cette bride (pour un moteur)

Bride de maintien pour moteur de faible longueur

Bride monteacutee sur la plaque de fond avec un moteur

Ensuite lorsque nous sommes passeacutes agrave la solution avec renvoi drsquoangle nous avons deacutecideacute drsquousiner une piegravece certes complexe mais qui proposait une universaliteacute notamment au niveau des diffeacuterentes positions des moteurs (verticale et horizontale) aspect qui satisfait pleinement au cahier des charges Cette piegravece que par la suite nous appellerons Bloc Moteur doit permettre la mise et le maintien en position du motoreacuteducteur la mise et le maintien en position du reacuteducteur la fixation de lrsquoensemble au sein du robot notamment sur la plaque de fond

Apregraves une petite eacutetude nous sommes arriveacutes agrave une piegravece de ce type

Bloc moteur pour la solution avec renvoi dangle

Cette nouvelle piegravece agrave de nombreux avantages

bull Elle nous permet de pouvoir incorporer le renvoi drsquoangle bull De maintenir les piegraveces entre-elles et de limiter les efforts directs sur les

diffeacuterents eacuteleacutementsbull Drsquoecirctre installeacute agrave lrsquohorizontale ou agrave la verticale

Effectivement lors de la conception du bloc moteur nous avons penseacute aux anneacutees futures et nous avons donc preacutevu un montage des moteurs agrave la verticale ou agrave lrsquohorizontale

En position verticale

En position horizontale

4 Les roues

Comme vu lors de la veille technologique les chenilles ont quasiment disparu de la compeacutetition Ceci est ducirc au fait que cette technologie est difficile agrave mettre en œuvre et que les regraveglements proposent des aires de jeux totalement planes

Or cette anneacutee un fosseacute fait son apparition dans le regraveglement Ce fosseacute de 36 mm de profondeur vient seacuteparer deux aires de jeu Une neacutecessiteacute de traverser le fosseacute apparaicirct donc pour aller renverser les quilles de lrsquoadversaire

Deux solutions sont alors possibles bull Traverser sur le pont aleacuteatoirebull Traverser le fosseacute

Si nous choisissons de traverser par le pont lrsquoideacutee de garder notre systegraveme de roues est correcte par contre un systegraveme agrave chenille permettrait de passer par le fosseacute

Apregraves reacuteflexion de lrsquoeacutequipe PR et des membres de la Coupe E=M6 la solution de traverser par le pont est retenue Ce qui nous a conduit tout droit vers la solution agrave roues

Les roues utiliseacutees sont des roues de roller de diamegravetre 80mm et drsquoune largeur de 22mm Ces roues sont relieacutees agrave lrsquoarbre drsquoun renvoi drsquoangle par lrsquointermeacutediaire drsquoun accouplement en aluminium

5 La base

Pour la base du robot il nous a parut indispensable de dimensionner la plaque de fond en eacutepaisseur De plus afin de maintenir la solution de modulariteacute de lrsquoensemble moteurs ndash roues nous avons deacutecideacute de fixer les deux supports moteurs sur un platine qui sera elle-mecircme fixeacutee agrave la plaque de fond du robot

Premiegraverement nous avons effectueacute un dimensionnement succinct de la platine

a Reacuteaction drsquoappui

0=sum Fx OK

0=sum Fy qLRbRaorRbRaqL210 =+=++minus

qLRa21=

AB = 027 m = L

P = mg P = 15 x 10 = 150 N

Q = 150 N270 mm soit q = 555 Nm

Bille folle

Accouplement

Bloc moteur

Renvoi drsquoangle

Platine

Base du robot

Motoreacuteducteur

Roue

b Moment de flexion

0 =sum= cMMf

02

sup2 =minus+ RaxqxMf

sup221

21 qxqLxMf minus=

c Flegraveche

)( xMfEIY =

sup221

21 qxqLxEIY minus=

161sup2

41 3 CqxqLxEIY +minus=

21241

121 43 CxCqxqLxEIY ++minus=

d Conditions aux limites

Y (x=0) = 0 C2 = 0

Y (x=L) = 0 012412

44

=+minus LCqLqL

241

4qLLC =

241

3qLC =

On obtient donc

xqLqxqLxEIY 343

241

241

121 +minus=

De mecircme

+minus=

242412

343 xLxLxEIqY

On sait que bull E = 210 000 10^6bull Y = 1 10^-3 mbull Q = 555 Nmbull L = 027 m

bull12

3bhI = b = 006 m

+

minus

=24

22416

128

343 LL

LLL

EYqI

36

4

0010102100000601052155512timestimes

timestimes=minus

h

Et enfin on trouve h lrsquoeacutepaisseur de la platine h= 43 mm

Apregraves reacuteflexion nous nous sommes rendu compte que ce calcul nrsquoeacutetait pas rigoureux car nous avons consideacutereacute la theacuteorie des poutres or dans notre cas nous ne pouvons satisfaire cette theacuteorie (Longueur de la section = 10 x la largeur de la section)

Il nous faut donc utiliser un modegravele plus preacutecis crsquoest pourquoi nous avons deacutecideacute de faire un calcul par eacuteleacutements finis sous Ideacuteas Ainsi nous trouvons une eacutepaisseur h = 32 mm

Il nous faut donc une platine de plus de 3 mm Etant donneacute que la platine sera solidairement fixeacutee agrave la base du robot nous avons deacutecideacute de prendre une eacutepaisseur de platine de 2 mm et une eacutepaisseur de base de robot de 2 mm Nous obtenons donc une eacutepaisseur totale de 4 mm Ainsi nous devrions avoir sous une charge de 15 kg moins drsquoun millimegravetre de flexion de la base du robot

6 Reacutesultats

Assemblage en position horizontale

Vue eacuteclateacutee en position verticale

Photo de lrsquoassemblage roues ndash blocs moteurs ndash moteurs ndash platine

Partie C Lrsquoeacutelectronique20 Les batteries

Afin de pouvoir choisir les batteries approprieacutees agrave notre application nous devons dans un premier temps faire une estimation de la consommation drsquoeacutenergie totale avec les pointes de courant envisageacutees dans notre robotIl est agrave noter que nous ne connaissons pas encore en deacutetail tous les eacuteleacutements annexes qui seront implanteacutes dans le robot comme par exemple les capteurs et actionneurs diverses qui seront choisis en fonction des objectifs technologiques atteints ou non de lrsquoassociation et de la strateacutegie finaleDans le but de pouvoir utiliser agrave nouveau dans lrsquoavenir notre base roulante nous avons choisi de surestimer les besoins en eacutenergie de sorte agrave ne pas ecirctre pris au deacutepourvu

La consommation pourrait se deacutecomposer ainsi - 2 moteurs de 24V sous 21A soit 1008 Watts pendant 100 du temps- 3 actionneurs de 21 Watts chacun soit 63 Watts pendant 50 du temps- 3A pour lrsquoeacutelectronique sous 5V soit 15 Watts pendant 100 du temps (Asservissement carte de commandes capteurs)

Ce qui nous fait au total une consommation maximale ~180 WattsLa consommation permanente devrait ecirctre ~147 Watts permanents il faut donc que les batteries puissent deacutebiter un courant de ~6 A sous 24 V durant le fonctionnement du robot

Apregraves une longue recherche on a pu reacutealiser le tableau comparatif des batteries suivant

typeDensiteacute

deacutenergie (WhKg)

Densiteacute deacutenergie (WhL)

auto-deacutecharge (mois)

voltage dune cellule (V)

temps de charge rapide

plomb 35 111 5 agrave 10 2 8h agrave 15h

NiCd (Nickel Cadnium) 50 94 10 agrave 20 12 1h30min

NiMH (Nickel Metal Hydride) 80 135 20 agrave 30 13 2h agrave 4h

Lithium Ion 100 196 5 agrave 10 36 2h agrave 4h

Lithium polymer 150 200 5 agrave 10 36 2h agrave 4h

AlKaline rechargeable 80 15 2h agrave 3h

type

cycle de charge-deacutecharge avant

que capaciteacute passe de 100 agrave

80

Courant max Courant max pic effet meacutemoire estimation

(euroWh) prixcycles

plomb 200 agrave 300 02C 05C M 0895 0003

NiCd (Nickel Cadnium) 1500 1C 20C H 416 0003

NiMH (Nickel Metal Hydride) 300 agrave 500 05C 5C L 2 0004

Lithium Ion 500 agrave 1000 1C 2C L 8 0008

Lithium polymer 300 agrave 500 1C 2C agrave 5C L 32 0006

AlKaline rechargeable 50 02C 05C H 178 0036

Effet meacutemoire L (Low) M (Medium) H (High)Courant max C signifie capaciteacute par exemple une batterie qui peut deacutelivrer un courant max de 1C de 4Ah pourra donc deacutelivrer 4A au maximum sans risque de deacuteteacuterioration

Nous nous sommes inteacuteresseacutes au courant maximum et au temps de charge rapide pour notre choix de batteriesLe type de batterie qui semble le plus approprieacute pour nous est le type Nickel-Cadnium parfaitement adapteacute au pic drsquoappel de courant que provoquent des moteurs pouvant supporter des charges rapides en 1h30min seulement afin de devoir preacutevoir trop de jeux de batteries diffeacuterents

Les batteries LI-Ion ou LI-Polymer preacutesentent une densiteacute eacutenergeacutetique tregraves inteacuteressante mais leur prix est beaucoup plus eacuteleveacute agrave lrsquoachat et de plus dans notre application roulant sur un sol peu accidenteacute la masse pouvant ecirctre transporteacutee est suffisante pour le type NiCd

Les batteries LI-Ion ou LI-Polymer sont plus adapteacutees agrave lrsquoaeacuteromodeacutelisme ou au petit appareil eacutelectroniqueQuant aux batteries au plomb qui sont vraiment bon marcheacute le courant maximum supporteacute est trop faible est supposerait drsquoavoir une forte capaciteacute

Nous voulons avoir une autonomie de 30 minutes il nous faut donc une eacutenergie de 735 WhOr sous 24 V les batteries doivent avoir une capaciteacute de ~3 AhComme les batteries NiCd peuvent deacutebiter un courant maximum de 1C (une fois leur capaciteacute) nous devons donc prendre des batteries de 6Ah sous 24 V ce qui nous donnera une autonomie de 1 heure

Il faudra donc soit acheter un bloc accumulateur NiCd de 24 V 6 Ah srsquoil existe dans le commerce soit le reacutealiser nous mecircme en assemblant diffeacuterents eacuteleacutements

Rappelons que lrsquoassociation en seacuterie permet drsquoadditionner les tensions des eacuteleacutements associeacutes et que lrsquoassociation en parallegravele permet drsquoadditionner les courants deacutebiteacutes

Par exemple des eacuteleacutements de 12 V chacun pour 3 Ah srsquoassocieraient ainsi

Soit deux seacuteries de 20 eacuteleacutements eacutequivalentes agrave 24 V et faisant une capaciteacute de 3 Ah chacune

Il est possible de reacutepartir les accumulateurs en diffeacuterents paquets pour faciliter le rangement dans le robot ou reacutepartir la masse ou eacuteventuellement trouver des packs dans le commerce

Dans le cas de lrsquoUV PR le choix des batteries reste pour le moment sur les NiCd mais pour les essais pratiques on utilisera des batteries au plomb que lrsquoon possegravede deacutejagrave drsquoautant plus que les essais sont reacutealiseacutes avec les moteurs de propulsion et lrsquoasservissement seul ce qui

neacutecessite un deacutebit de courant de 24105 = 4375 A sur 2 batteries soit asymp2187 A

Comme les batteries au plomb peuvent deacutebiter 02C il nous en faudrait des de asymp 109 Ah

Or les essais de la base roulante ne seront que de courtes dureacutees et lrsquoon se contentera donc drsquoutiliser des batteries de 6 Ah pour des raisons de volume mecircme si elles ne sont pas vraiment bien dimensionneacutees

21 La commande des moteurs

Dans un premier temps nous verrons un bref reacutecapitulatif des cartes et modules drsquoasservissement du commerce

Pour la commande les moteurs plusieurs solutions ont eacuteteacute envisageacutees - Un asservissement lsquotout faitrsquo analogique modules laquo Escap raquo- Une solution lsquoartisanalersquo carte avec asservissement numeacuterique- Un asservissement lsquotout faitrsquo numeacuterique circuits laquo LM629 raquo

a Comparatifs des modules drsquoasservissement et calcul des correcteurs

Veille technologique sur les systegravemes drsquoasservissement utiliseacutes par les diffeacuterentes eacutecoles de la coupe E= M6

Le but de cette partie est drsquoeacutetudier les principales techniques drsquoasservissement utiliseacutees par les eacutecoles de la Coupe E=M6 Ce document est loin drsquoecirctre exhaustif et servira de base agrave compleacuteter et actualiser pour les semestres et eacutequipes prochaines

Apregraves une eacutetude sur plus drsquoune trentaine drsquoeacutecoles il ressort trois formes drsquoasservissement la plus utiliseacutee agrave 85 est du type PID en majoriteacute reacuteduit au PI ensuite viennent les microcontrocircleurs PIC associeacutes au PID et les modules AVR nous allons par la suite deacutetailler ces trois solutions Il existe eacutegalement des systegravemes de controcircle dits agrave retour drsquoeacutetat jamais utiliseacutes jusqursquoagrave preacutesent pour la Coupe crsquoest pourquoi nous ne deacutevelopperons pas son approche

3 Systegraveme PID

httpwwwancrorgfichtechactionpidindexhtm

a Principe

Pour pouvoir tester un asservissement il faut dabord reacutealiser une plate-forme de deacuteveloppement le plus geacuteneacuteralement du type suivant Mais pour commencer un brin de theacuteorie illustreacute par des exemples Le scheacutema de principe est repreacutesenteacute ci-dessous

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

Nous avons bien un scheacutema en boucle fermeacutee puisque la sortie du systegraveme est reacuteinjecteacutee dans lentreacutee Les trois blocs bleus correspondent chacun agrave une fonctionnaliteacute Ki est le coefficient inteacutegral Kp le coefficient proportionnel et Kd le coefficient deacuteriveacute Chacun de ces coefficients a une fonctionnaliteacute bien preacutecise Commenccedilons par le plus simple le proportionnel

b Asservissement P

Lasservissement proportionnel est essentiel au fonctionnement du PID Il permet essentiellement de donner de la puissance au moteur Voici quelques reacutesultats dexpeacuterimentations avec Ki=0 et Kd=0

La courbe noire repreacutesente la consigne que lon deacutesire atteindre (Ud) cest un eacutechelon de valeur 32 La courbe bleue repreacutesente la vitesse reacuteelle du systegraveme (Y) Comme vous pouvez le constater plus Kp est grand plus le systegraveme converge vite vers sa valeur finale Mais en contrepartie pour des valeurs de Kp trop grandes le systegraveme oscille Mais lagrave nest pas notre plus gros problegraveme en effet sur ces courbes on voit nettement que la vitesse du moteur natteint jamais la vitesse deacutesireacutee Cest ce que lon appelle lerreur statique elle correspond agrave la diffeacuterence entre la vitesse reacuteelle et la vitesse deacutesireacutee en reacutegime eacutetablie (une fois que le systegraveme sest stabiliseacute) Pour compenser cette erreur statique on rajoute le terme inteacutegral

c Asservissement PI

Le correcteur inteacutegral sert principalement agrave supprimer lerreur statique Lideacutee principale est de charger ou inteacutegrer lerreur depuis le deacutebut et dajouter cette erreur agrave la consigne jusquagrave ce quelle devienne nulle Lorsque cette erreur est nulle le terme inteacutegral se stabilise et il compense parfaitement lerreur entre la consigne et la vitesse reacuteelle Deacutemonstration en image

On voit cette fois-ci que le terme inteacutegral a bien fonctionneacute et que lerreur statique est nulle On constate aussi que plus le gain Ki est grand plus le systegraveme converge vite En revanche plus Ki est grand plus le systegraveme oscille et plus le deacutepassement est grand Sur des asservissements en position le terme deacuteriveacute permet de diminuer le deacutepassement et les oscillations Nous allons voir que dans notre cas nous avons quelques problegravemes

d Asservissement PID ou agrave avance de phase

On a donc rajouteacute le terme deacuteriveacute comme tout bon livre dautomatique le preacuteconise et voici les reacutesultats

Cette fois ci jai choisi de repreacutesenter la tension appliqueacutee au moteur (U) le problegraveme est bien plus flagrant ici Vous voyez que lorsque lon ajoute le terme deacuteriveacute la commande est extrecircmement bruiteacutee En reacutealiteacute on somme agrave la commande la deacuteriveacutee de la vitesse reacuteelle que lon multiplie par un gain Kd La deacuteriveacutee dune vitesse est une acceacuteleacuteration cela signifie que lon amplifie tous les bruits dacceacuteleacuteration et en plus on les multiplient par un gain Kd Donc rajoute du bruit amplifieacute dans la commande Alors pourquoi mettent t-ils ce terme deacuteriveacutee dans les livres Simplement parce que ce bruit est typique des asservissement en vitesse Sur des asservissements en position ce problegraveme est moins freacutequent car la deacuteriveacutee de la position est la vitesse

Ici le problegraveme eacutetait visible parce que nous avons reacutealiseacute toutes ces courbes sur un systegraveme reacuteel Si nous avions simuleacute ces reacutesultats lacceacuteleacuteration naurait pas eacuteteacute bruiteacutee et les courbes auraient eacuteteacute parfaites Pour impleacutementer ce PID sur notre robot il a fallu programmer en numeacuterique une deacuteriveacutee et une inteacutegrale

e PID numeacuterique et reacuteglage

Notre premier problegraveme est de programmer le terme inteacutegral Il existe une meacutethode qui consiste agrave estimer la surface entre deux eacutechantillons mais dans notre cas nous avons des problegravemes dus aux bruits et agrave la freacutequence deacutechantillonnage Alors il faut sommer toutes les erreurs depuis de deacutebut

Notre second problegraveme est de programmer le terme deacuteriveacute La meacutethode ici est de calculer la pente entre deux eacutechantillons de e Theacuteoriquement cela revient agrave faire le calcul suivant

Avec la peacuteriode deacutechantillonnage Pour faire un asservissement numeacuterique il faut impeacuterativement avoir une peacuteriode fixe Pour gagner du temps de calcul geacuteneacuteralement on inteacutegre directement dans le gain Kd

Voici un lalgorithme exemple

Ti = 0 Initialise le terme inteacutegral

for ( i=1 i lt= Nb_cycles i++ )

Init_timers (1) Initialise le timer agrave notre peacuteriode 1 ms

Y = Codeur () Stoque la valeur du codeur dans Y Rst_codeur () Remet le codeur agrave zeacutero Ud = Consigne () Mise agrave jour de la consigne e_old=e Stoque e(t-1) e = Ud - Y Calcul de lerreur Ti = Ti + e Calcul de linteacutegral Calcul du PID U = Kp e Terme proportionnel

+ Ki Ti Terme inteacutegral + Kd ( e - e_old ) Terme deacuteriveacute Moteur (U) On applique la consigne

while ( end_timer() ) On attend la fin de la peacuteriode

Pour le reacuteglage des gains Kp Ki et Kd il existe diffeacuterentes meacutethodes Ici nous lavons fait de maniegravere empirique et le reacutesultats est plutocirct bon Linconveacutenient de ces meacutethodes est quelles demandent un modegravele du systegraveme ce qui est geacuteneacuteralement dur agrave produire Il existe

aussi des composants programmables qui permettent de faire directement lasservissement numeacuterique (HCTL 1100 LM629) Ils sont exactement baseacutes sur la meacutethode preacutesenteacutee ici

Pour ce qui est du reacuteglage des correcteurs lrsquooptimal est drsquoutiliser la meacutethode de lrsquooptimum dissymeacutetrique une fois que lrsquoon agrave reacutealiseacute le modegravele du systegraveme La plus part des eacutecoles ne reacutealisent pas ce modegravele et ce limite donc agrave une correction empirique en reacutealisant des tests ou en utilisant la meacutethode Ziegler-Nichols agrave partir de la reacuteponse agrave un eacutechelon de tension

Par la suite nous rappellerons les meacutethodes de Ziegler-Nichols et de lrsquooptimum dissymeacutetrique

f Les meacutethodes de Ziegler-Nichols

Ces meacutethodes fournissent des reacuteglages pour des correcteurs de type PID (pouvant ne comporter quune action Proportionnelle une action Proportionnelle et une action Inteacutegrale ou les 3 actions simultaneacutement) dont la structure est la suivante

bull MEacuteTHODE DE ZIEGLER NICHOLS TEMPORELLE

Elle est adapteacutee aux systegravemes stables en boucle ouverte qui ont une reacuteponse apeacuteriodique La reacuteponse agrave un eacutechelon unitaire du systegraveme physique doit ecirctre enregistreacutee Diffeacuterentes caracteacuteristiques de la reacuteponse obtenue sont mesureacutees

Le modegravele approcheacute utiliseacutee par Ziegler Nichols comporte une constante de temps et un retard pur ou bien un retard pur et un inteacutegrateur

Si le systegraveme physique comporte un inteacutegrateur les mesures de a et de L demeurent disponibles sur le deacutebut de la reacuteponse

Les reacuteglages suggeacutereacutes par la meacutethode temporelle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 1a - -correcteur PI 09a 3L -

correcteur PID 12a 2L L2Concernant le raffinement des reacuteglages augmenter Kp ou diminuer Ti augment les

oscillations de la sortie

bull MEacuteTHODE DE ZIEGLER NICHOLS FREacuteQUENTIELLE

Cette meacutethode convient particuliegraverement bien aux systegravemes instables en boucle ouverte pour lesquels la meacutethode temporelle nest pas envisageable Lexpeacuterimentation se fait sur le systegraveme boucleacute avec un simple gain proportionnel qui doit ecirctre stable Le principe est de modifier la valeur du gain par essai-erreur jusquagrave atteindre la limite de stabiliteacute (pheacutenomegravene de pompage) Il reste agrave relever le gain limite K0 obtenu et agrave mesurer la peacuteriode T0 des oscillations de la reacuteponse obtenue

Les reacuteglages suggeacutereacutes par la meacutethode freacutequentielle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 05 K0 - -correcteur PI 045 K0 08 T0 -

correcteur PID 06 K0 05 T0 0125 T0

A la page Internet suivante vous trouverez un simulateur de cette meacutethode

httpwww-hadocensieginpgfrhadocateliersreglageEmpCorrReglEmpCorrDroithtml

g Meacutethode de lrsquooptimum dyssimeacutetique (voir poly MC06 Chap 5 et 8)

Cette meacutethode srsquoapplique une fois le modegravele reacutealiseacute et mis sous la forme drsquoun second ordre

et on obtient le correcteur PI

pour une surtension deacutesireacutee QdB

Q = 10^(QdB20)λ= radic(Qsup2(Qsup2-1))Δφ = arcos (1 λ)α= ((1+sin(Δφ))cos(Δφ))sup2ωN= ωQαω0= ωQradicαKP= ω0 λ KQ

4 Les microcontrocircleurs

a Avant propos

Cette fiche se veut ecirctre sous la forme dun projet Un projet non termineacute ougrave chacun peut apporter sa contribution (ameacuteliorations adaptations corrections etc)De ce fait ces pages sont ameneacutees agrave eacutevoluer et vous-mecircme pourrez participer agrave leur eacutevolution

Pourquoi avoir choisit un tel mode de travail Tout simplement parce que le sujet est vaste et que des variations sont possibles suivant lutilisation quen feront les diffeacuterentes personnes

Le but de ce projet est de reacutealiser une double asservissement de vitesse (type PID) de deux moteurs sur un seul PIC (type 16F877) Lutiliteacute majeure eacutetant de faire rouler un robot bien droit et agrave la bonne vitesse A quoi ccedila sert plus preacuteciseacutement

Avec un seul PIC ce projet permet aux roboticiens amateurs et chevronneacutes de reacutealiser facilement leur asservissement de vitesse de moteurs agrave courant continu (en geacuteneacuteral les moteurs de propulsions de leur robot mais ccedila peut ecirctre bien sucircr dautres moteurs) La commande de lasservissement pourra se faire agrave terme en liaison seacuterie (deacutejagrave fait) I2C ou par bus ISA

b Avantages

Il existe bien sucircr dautres systegravemes qui gegraverent un asservissement de vitesses Des systegravemes professionnels existent comme les LM629 Ils ont linconveacutenient decirctre cher (et ce pour un seul moteur) et relativement complexes

Pourquoi chercher un fusil pour chasser des moustiques Le double asservissement sur PIC vous coucircte le prix dun PIC soit environ 15Euro pour un 16F877 actuellement et ce pour 2 moteurs Ce double asservissement se veut relativement simple De plus vous pouvez en modifier le programme et ladapter agrave vos besoins

c Inconveacutenients

Les personnes qui auront les moyens preacutefeacutererons opter pour un systegraveme professionnel certainement pour des raisons de fiabiliteacute mais cest agrave leurs risques et peacuterils -)La puissance du PIC eacutetant limiteacutee il ne peut pas reacutealiser des PID trop rapides ou trop complexes Il y a en particulier une limitation sur le nombre dimpulsions par seconde quil est capable de geacuterer

Le langage utiliseacute eacutetant le C il faut une licence du logiciel pour pouvoir modifier et recompiler le code source c Mais le projet se veut geacuteneacuterique Une version donneacutee pourra ecirctre utiliseacute sans recompilation en respectant quelques contraintes

d Asservissement

En fait on pourrait imaginer quil suffirait denvoyer au moteur une puissance constante pour quil tourne tout le temps agrave la mecircme vitesse Ce nest pas vrai du tout Tout dabord 2 moteurs dune mecircme seacuterie nauront pas forceacutement le mecircme comportement Ensuite parce que les niveaux de tension ou dautre diffeacuterences eacutelectriques peuvent jouer Enfin parce que des influences exteacuterieures (obstacles frein meacutecanique du robot) peuvent jouer

Du coup il est tregraves difficile de faire aller un moteur agrave la vitesse voulue Parfois ce nest pas gecircnant mais ccedila peut lecirctre Un exemple classique est le robot avec 2 roues motrices type char une configuration qui est tregraves courante Mais pour que ce robot aille droit il faut que les 2 moteurs aillent exactement agrave la mecircme vitesse

La solution est de faire un asservissement Cest a dire moduler dynamiquement la puissance envoyeacute aux moteurs suivant leur vitesse mesureacutee afin dadapter celle-ci agrave ce qui est deacutesireacuteeCela implique un eacuteleacutement tregraves important pour asservir il faut un capteur de vitesse du moteur En geacuteneacuteral il sagit dun compte-tour qui enverra N impulsions (ou pas) par tour de moteur Ensuite un programme va calculer en fonction de la vitesse mesureacutee du moteur la puissance agrave utiliser

Les asservissements sont constamment en train de chercher leacutequilibre Il faut bien comprendre quils mettent un certain temps agrave latteindre et ce dernier peut aussi ecirctre instable si lasservissement est mal reacutegleacute

Lasservissement quon va utiliser ici est un classique PIDou plus preacuteciseacutement un PI car pour des raisons de vitesses de traitement la composante deacuteriveacutee est laisseacutee de coteacute (mais rien de difficile agrave rajouter)

Le PID ou Proportionnel Inteacutegrale Deacuteriveacute est une meacutethode de calcul dasservissement

Soit Kp Ki et Kd les coefficients proportionnels inteacutegrale et deacuteriveacuteSoit e lerreur Vitesse mesureacutee moins vitesse demandeacuteeSoit Ti le terme inteacutegral dabord initialiseacute agrave 0

Consigne a appliquer (PWM) = Kp e + (1Ki) (Ti += e) + Kd (e - e(t-1))

On pourrait dire des pages et des pages sur le PID et ce nest pas mon but ici Merci de vous reporter au lien ci-dessous

Pour plus de deacutetails sur le PID la page de lANCR httpwwwancrorgfichtechactionpidindexhtmChez les Fribottes la Simulation de Jean-Claude httpwwwwikifreefrWiKiFriindexphpSimulateur20de20PID

e Le pic

Le PIC est un petit microcontrocircleur assez bon marche et simple a programmer comme a utiliser

La aussi je vais pas rentrer dans les deacutetails vous pouvez vous reporter agrave la bdtech du site Fribotte et en particulier aux cours de Bigonoff

Le PIC est ici programmeacute en C voir la page Fribotte ici Lutilisation du langage C permet dalleacuteger consideacuterablement le deacuteveloppement dune application compliqueacutee

2 Module AVR

httpwwwenseirbfr~matzfravrphp

Tregraves peu de renseignement sur ce module sinon ces informations drsquoun eacutetudiant de lrsquoEnseirb

Depuis plusieurs anneacutees je participe agrave la coupe de robotique E=M6 dont lobjectif pour chaque eacutequipe est de fabriquer un robot autonome devant se conformer agrave un regraveglement Pour plus dinfos vous pouvez vous rendre sur le site de mon eacutequipe Microb Technology ou bien sur le site de Planegravete Sciences lorganisme beacuteneacutevole qui organise cette compeacutetition

Jai deacutecouvert en 2001 les microcontrocircleurs Atmel AVR auxquels je me suis beaucoup attacheacute dune part parce quils sont assez performants pour des microcontrocircleurs 8 bits mais aussi et surtout car le fameux compilateur libre GCC est capable de compiler du code C pour ces petites becirctes Il existe de surcroicirct plusieurs outils libres permettant de les programmer de les simuler etc

Le but de ce projet est donc de deacutevelopper des modules servant dinterface geacuteneacuterique avec le hardware du microcontrocircleur quel que soit la version (par exemple les UART inclus dans les AVR AtMega sont diffeacuterents de ceux preacutesents dans les petits AVR) et de deacutevelopper des modules utiles pour certaines utilisations usuelles et pas seulement pour la coupe E=M6 (codage de hamming asservissement chiffrement etc)

Vous pouvez contacter leacutequipe de deacuteveloppement agrave avr-devdroids-corporg Pour le moment aucune release na eacuteteacute faite mais le travail est deacutejagrave bien avanceacute Chaque soir un screenshot du CVS est reacutealiseacute Il peut ne pas compiler mais normalement ccedila devrait fonctionner Voici le lien

3 Modules drsquoasservissement analogique laquo Escap raquo

Nous avons essayeacute de reacutecupeacuterer les cartes de commande Escap pour moteurs Escap qui avaient eacuteteacute utiliseacutees en 96 et 98 avec succegraves

Nous les avons monteacutes sur une base roulante qui pesait en tout 74 kgVoici grosso-modo leurs avantages et leurs inconveacutenients (pour les notices techniques voir le rapport 96 ou 98)

a Avantages

Cette carte inclut directement un asservissement avec correcteur PI la commande de puissance les ponts en H

Elle est tregraves facile agrave utiliser Elle est speacutecialement conccedilue pour les moteurs Escap que nous avons donc

parfaitement adapteacutee

b Inconveacutenients

Les moteurs ne fonctionnent correctement que sous 24v Les cartes et les moteurs semblent assez gourment Les cartes nantis de gros radiateurs sont relativement encombrantes Les tachymegravetres monteacutes sur les moteurs ne donnent pas une indication de position

mais de vitesse (qui plus est en analogique)

Nous avons preacutefeacutereacute refaire la partie commande car celle de 1996 souffrait de quelques deacutefauts (cf rapport 1996)

La conversion numeacuterique analogique

Pour reacutealiser la conversion numeacuterique analogique nous avons choisit un pont agrave reacutesistance R-2R

Nous pouvons consideacuterer que chaque bit est relieacute agrave un geacuteneacuterateur ideacuteal de tension (qui deacutelivre 0v ou 5v) Par conseacutequent la reacutesistance eacutequivalente quelque soit lrsquoeacutetat des bits et quelques soit le nombre de bits vue entre la sortie et la masse sera eacutegal agrave R

La tension Vs en fonction de lrsquoeacutetat des bits sera

Ce type de CAN eacutetant tregraves classique nous nrsquoindiquerons pas les deacutemonstrations toutefois vous pourrez les trouver tregraves facilement sur Internet ou sur le Cd-rom drsquoannexes joint au dossier

Le montage de Thevenin eacutequivalent est donc

Nous avons jugeacute qursquoune discreacutetisation sur 8 bits eacutetait un peu superflu crsquoest pourquoi nous nous contenterons de 4 bits (ce qui repreacutesentent quand mecircme 16 niveaux de vitesse)

bull Lrsquoadaptation du niveau de tension

Nous avons agrave la sortie du CAN une tension qui srsquoeacutetend de 0 agrave 5v or la commande des cartes Escap ce fait entre -5v et +5v

On peut voir cette adaptation comme lrsquoajout drsquoun offset de -25v et une amplification de gain 2

Voici le montage reacutealisant cette conversion

M1 est un montage suiveur qui lsquorecopiersquo la tension aux bornes de P1 mais sous une impeacutedance constante et eacutegale agrave 4R En 1996 lrsquoeacutequipe avait brancheacute P1 directement sur M3 mais cela a pour inconveacutenient de faire varier agrave la fois lrsquooffset et la penteLe potentiomegravetre P1 permet drsquoajuster lrsquooffset (permet par conseacutequent de reacutegler lrsquoarrecirct complet de moteur) (La valeur theacuteorique de lrsquooffset est 5V (cf formule en M3))

M2 est aussi un montage suiveur Le potentiomegravetre P2 permet drsquoajuster la pente (qui doit avoir un coefficient directeur de 2) Comme M2 est connecteacute au CAN dont la reacutesistance interne est de R P2 doit ecirctre a peut precirct eacutegal agrave R de la sorte la branche aura une reacutesistance eacutequivalente de 2R

M3 Sommateur (Vs = - 2 (Ve + Voffset))

Qursquoelle valeur choisir pour R

Theacuteoriquement on peut choisir nrsquoimporte quelle valeur pour R mais en pratique si R est trop petite une intensiteacute importante serait consommeacutee sans raison et si R est trop grande la forte impeacutedance du montage le rendra tregraves sensible aux parasites (secteur moteurshellip)Ce montage a eacuteteacute testeacute et fonctionne correctement pour R=5k les amplificateurs opeacuterationnels utiliseacutes sont des LM324 mais drsquoautres seraient tout agrave fait envisageables (peu de contraintes de vitesse et de tensions de deacutechets)

4 Conclusion

Nous avons preacutefeacutereacute ne pas utiliser les cartes Escap car les moteurs ne renvoient pas une position sous forme drsquoimpulsion mais une vitesse Etant donneacute que nous avions envisageacute un repeacuterage par odomeacutetrie cela compliquait consideacuterablement la tache

Toutefois il faut savoir que cette solution a eacuteteacute testeacutee et fonctionne tregraves bien (bonne preacutecision bonne dynamique) ainsi dans le cas ougrave le repeacuterage ne se fait pas par odomeacutetrie mais des balises exteacuterieures sachez que cette solution est tregraves pratique agrave utiliser En effet pour imposer une vitesse il suffit au microcontrocircleur drsquoappliquer sur un port un mot binaire correspondant agrave la vitesse voulue hellip et crsquoest tout La carte Escap se charge du reste

5 Carte drsquoasservissement numeacuterique laquo artisanale raquo

La carte reacutealiseacutee baseacutee sur un microcontrocircleur PIC 16F877A srsquoest aveacutereacutee fonctionnelle mais les tests drsquoalgorithmes drsquoasservissement nrsquoont pas eacuteteacute effectueacutesEn effet lrsquoutilisation de cette solution neacutecessite un microcontrocircleur deacutedieacute agrave lrsquoasservissement capable de communiquer via un protocole agrave deacutefinir avec la laquo carte megravere raquo (centralisant les retours des autres capteurs du robot et agissant sur les diffeacuterents actionneurs en fonction de la strateacutegie)Or afin de limiter le nombre de microcontrocircleurs sur le robot et du fait que lrsquoon dispose drsquoun budget suffisant nous avons deacutecideacute drsquoessayer drsquoutiliser des composants speacuteciaux reacutealisant lrsquoasservissement

Le systegraveme se deacutecompose en

- Un microcontrocircleur pour appliquer la PWM asservir et commander- Une carte de puissance pour chaque moteur baseacutee sur un LMD18200- Une carte compteur drsquoimpulsions pour les codeurs

Afin de favoriser lrsquointeractiviteacute et les reacuteglages jrsquoai ajouteacute une carte afficheur LCD avec 6 boutons sur la carte microcontrocircleur

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 7: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

UV PR Reacutealisation drsquoune base roulanteA04

3 Cahier des charges de lrsquoUV PR

Chaque anneacutee les strateacutegies de locomotions des robots se ressemblent cependant nous partons agrave chaque fois de zeacutero

Crsquoest pourquoi il nous a sembleacute utile drsquoessayer de construire une fois pour toute une base roulante reacuteutilisable et fiable

Nous nous sommes fixeacute comme objectifs principaux

De reacutealiser une base roulante bull Facilement reacuteutilisablebull Fiable

Commandable bull En vitessebull En distancebull En rotation

Caracteacuteristiques bull Pouvant supporter 15kgbull Ne faisant pas plus de 260 mm de large

4 Lrsquoeacutequipe chargeacutee de lrsquoUV PR

Etudiants CARLIER Pierre Emmanuel GM02DE SOUZA Damien GSM05 - CMIDUMAY Damien GM02FONDEUR Germain GM05 - MARSMONTJALON Thomas GI05 - RODRIGUES Sylvain GM05 - MARSTRANNOY Guillaume GM02

Suiveurs Projet

FORGEZ Christophe (laboratoire drsquoeacutelectromeacutecanique de lrsquoUTC)LANFRANCHI Vincent (laboratoire drsquoeacutelectromeacutecanique de lrsquoUTC)

Page 7

UV PR Reacutealisation drsquoune base roulanteA04

Partie A Description geacuteneacuterale de la base roulante

1 Carte megravere

Il srsquoagit de la carte laquo intelligente raquo du robot elle commande le deacuteplacement mais aussi les diffeacuterents actionneurs et capteurs du robot Cette partie correspond agrave

Motorola HCS12 (MC9S12DP256B) Microchip PIC 18F458 Rabbit (RCM3400) PC104 hellip

2 Asservissement

Cette partie correspond au controcircle des actionneurs elle est lrsquointerface entre la carte megravere et les effecteurs Il peut srsquoagir de

Carte de puissance Pont en H Controcircle de vitesse hellip

Page 8

UV PR Reacutealisation drsquoune base roulanteA04

Partie B La meacutecanique 1 Veille technologique

Afin de pouvoir eacuteviter de proposer ou de faire des choses deacutepasseacutees inutiles ou non fiables nous avons proceacutedeacute agrave une petite veille technologique de tout ce qui se fait agrave la Coupe de France de Robotique Pour cela nous nous sommes baseacutes sur le site de lrsquoANSTJ qui est lrsquoassociation qui organise la Coupe de France Sur son site lrsquoANSTJ a recenseacute tous les posters des eacutequipes de la compeacutetition de 2004 Ces posters sont des documents remis agrave lrsquoorganisation en mai 2004 lors de la derniegravere compeacutetition A partir de ces posters nous avons regardeacute comment les eacutequipes avaient fait leur(s) robot(s)

bull Quel systegraveme de deacuteplacement (roues chenilles pattes) bull Quel type de moteurs bull Comment et ougrave les moteurs eacutetaient placeacutes bull Les accouplements (directs ou indirects) bull La forme des robots bull La modulariteacute du laquo bloc moteur raquo

Toutes ces informations sont recenseacutees dans un tableau Excel Ce document est en annexes

Les principales informations recueillies de cette veille sont

bull La plupart des eacutequipes utilisent une liaison directebull La motorisation se fait par des rouesbull Les roues sont placeacutees agrave lrsquoarriegravere du robotbull Les robots sont de formes rectangulaires ou carreacutees

Il faut preacuteciser que ces informations sont relatives au regraveglement de la compeacutetition de 2004 Ces choix sont donc fortement lieacutes au regraveglement On peut noter que dans le passeacute plus de robot avec transmission agrave renvoi drsquoangle existaient

Deux eacuteleacutements sont donc agrave fortement retenir les chenilles ont quasiment disparu et les robots cylindriques sont en forte voie de disparition

Nous tacirccherons donc drsquoeacuteviter ces deux aspects pour la conception de notre base roulante

Page 9

UV PR Reacutealisation drsquoune base roulanteA04

2 Le choix des moteurs

a Technologies

Le regraveglement de la compeacutetition ne laissant pas de reacuteels choix quant agrave la source drsquoeacutenergie utiliseacutee nous nous sommes directement orienteacutes vers des moteurs eacutelectriques Il existe plusieurs familles de moteurs eacutelectriques

bull Les moteurs Brushlessbull Les moteurs agrave Courant Continubull Les moteurs agrave Courant Alternatifbull Les moteurs Pas agrave PasForts de nos expeacuteriences passeacutees les moteurs Pas agrave Pas on eacuteteacute directement mis de

coteacute agrave cause de leur faibles vitesse de rotation et couple En ce qui concerne les moteurs agrave Courant Alternatif leur mise en œuvre est assez compliqueacutee pour des systegravemes embarqueacutes Nous avons donc le choix entre les moteurs Brushless et les moteurs agrave Courant Continu Nous avons opteacute pour les moteurs agrave Courant Continu car ceux-ci sont plus simples agrave controcircler moins coucircteux et mieux connus que les Brushless

b Dimensionnement

Le cahier des charges nous impose les caracteacuteristiques suivantes

- Diamegravetre des roues 8cm- Poids du robot 15 kg- Vitesse maximum drsquoentraicircnement 1ms-1 - Acceacuteleacuteration maximum 1ms-2

Lrsquoassociation avait agrave sa disposition 2 motoreacuteducteurs de types AMAX 26G PLG 26 de chez MDPmotor donc le premier objectif eacutetait de veacuterifier si lrsquoon pouvait se servir de ces moteurs pour reacutepondre aux speacutecifications que lrsquoeacutequipe crsquoeacutetait fixeacute

Nous allons donc vous expliquer la deacutemarche que nous avons suivie

On peut repreacutesenter lrsquoaxe moteur comme ci dessous

Moteur

Reacuteducteur

Palier

Roue

eacutecrasement

Page 10

UV PR Reacutealisation drsquoune base roulanteA04

Tout drsquoabord il faut deacuteterminer la force de reacutesistance au roulement celle-ci va deacutependre essentiellement de deux paramegravetres

- force de frottement essieu palier donneacutee par la relation suivante

rff D

dMgF 22

times

times= micro fmicro Coefficient de frottement essieu palier

rD Diamegravetre de la roue

2d

Rayon de lrsquoessieu

- force drsquoeacutecrasement

re D

fMgF 2timestimes=M Masse du robotf Eacutecrasement (00001 m)

Ce qui nous donne lrsquoexpression de la force de reacutesistance au roulement celle-ci devant ecirctre vaincue par le moteur pour mettre le robot en mouvement

+= fdMg

DF f

rres 2

2 micro

A partir de cette force on peut deacuteterminer le couple reacutesistant permanent agrave vaincre

resr

rp FDC times=2

Pour pouvoir appliquer le principe fondamental de la meacutecanique il nous faut deacuteterminer lrsquoinertie de la charge Afin drsquoobtenir ce paramegravetre nous allons consideacuterer qursquoil y a conservation de lrsquoeacutenergie cineacutetique entre le mouvement de rotation (de la roue) et de la translation (du robot) ce qui nous donne

222

221

21

=rArr=Ω r

ccccDMJMVJ

Si lrsquoon ramegravene cette inertie au moteur cela donne

rcmc

rm

ccmc

rmmccc

kJJJJ

JJ

ηη

η

121

21

2

2

2

2

times=hArrΩ

Ωtimes=

Ω=Ωk Rapport de reacuteduction

rη Rendement du reacuteducteurcJ Inertie de la charge

mcJ Inertie rameneacutee au moteur

Page 11

Maintenant nous avons tous les eacuteleacutements pour eacutecrire le principe fondamental de la meacutecanique

mrpmmmtot CCJ minus=γ

Ici compte tenu de notre application pour deacuteterminer le couple moteur neacutecessaire il faut tenir compte du nombre de moteurs

( )[ ]mrpmmcmmoteur

m CJJnb

C 1 ++= γ

Dans lrsquoapplication le nombre de moteurs srsquoeacutelegraveve agrave deux donc si lrsquoon regarde lrsquoexpression du couple moteur pour chaque phase cela donne

- phase drsquoacceacuteleacuteration

mmaccmacc

r

rpa

r

rmaccm

CP

kC

kDMJC

η

ηγ

η

1

122

1

max

2

2

timesΩtimes=

+times

times

+=

- phase de freinage

mmfrmfr

r

rpfr

r

rmfrm

CP

kC

kDMJC

η

ηγ

η

1

122

1

max

2

2

timesΩtimes=

+times

times

+=

- reacutegime permanent

mmpermmperm

r

rppermm

CP

kC

C

η

η1

21

max

timesΩtimes=

=

Maintenant que toutes les relations ont eacuteteacute mises en eacutevidence on peut regarder les reacutesultats que lrsquoon obtient avec le moteur AMAX 26G en gardant agrave lrsquoesprit que pour lapplication on considegravere que les phases drsquoacceacuteleacuteration seront preacutepondeacuterantes crsquoest pourquoi on dimensionnera les moteurs pour les phases drsquoacceacuteleacuterations

Apparemment le moteur aurait pu convenir si le reacuteducteur avait eu un rapport de reacuteduction plus faible En effet le moteur peut deacutelivrer le couple nominal neacutecessaire mais nous ne permet pas drsquoatteindre les vitesses souhaiteacutees Dans un premier temps nous avions revu nos speacutecifications agrave la baisses envisageacute la meilleure faccedilon de commander le moteur de faccedilon agrave ce que lrsquoon deacutemarre toujours en suivant la limite de puissance imposeacutee par le collecteur meacutecanique Ceci nous aurait permis drsquoavoir la meilleure dynamique du moteur La conseacutequence de ce type de fonctionnement aurait eacuteteacute un eacutechauffement excessif et un vieillissement preacutematureacute du moteur Donc les risques de casse auraient eacuteteacute multiplieacutes

Suite agrave un incident durant les phases de tests un des moteurs crsquoest vu endommageacutes crsquoest pourquoi il agrave fallu dimensionner drsquoautres moteursNous avons donc repris nos calculs avec un nouveau rapport de reacuteduction ce qui nous donne les reacutesultats suivants

Nous avons donc rechercheacute un moteur qui aurait pu avoir ses caracteacuteristiques agrave savoir - Couple nominal 34 mNm- Vitesse nominale 3342 trmin- Puissance nominale 16 W- Alimentation 24V- Reacuteducteur 1 14

Ce qui nous donnerait en sortie de reacuteducteur - Couple nominal 033 Nm- Vitesse nominale 239 trmin

Nous avons eu beaucoup de mal agrave trouver un moteur qui reacuteponde agrave ses exigences de maniegravere preacutecise et qui ait des caracteacuteristiques geacuteomeacutetriques compatibles avec les speacutecifications meacutecaniques Ces speacutecifications meacutecaniques eacutetant contraignantes compte tenu de la strateacutegie envisageacutee

Crsquoest pourquoi nous avons seacutelectionneacute un moteur un peu surdimensionneacute pour notre application toutefois cela va dans le bon sens comme nous sommes obligeacutes de mettre un renvoi drsquoangle ce qui va augmenter les pertes et lrsquoinertie Donc ce surdimensionnement devrait palier aux impreacutevus et combler nos neacutegligences

c Choix possibles

Gracircce aux informations qui preacutecegravedent on a pu choisir 3 Reacutefeacuterences bull Un motoreacuteducteur de chez MDP-Motor avec une vitesse en charge de 309 trmin-1 et

un couple de 057 Nm reacutefeacuterence AMAX32GHPPLG42S prix unitaire TTC 310 euro (avec -20 en tant que participant agrave la Coupe) disponibles sous 12 semaines longueur sans arbre de 142 mm

bull Un motoreacuteducteur de chez MDP-Motor avec une vitesse en charge de 559 trmin-1 et un couple de 060 Nm reacutefeacuterence RE035GPLG52 prix unitaire TTC 337 euro (avec -20 en tant que participant agrave la Coupe) disponibles de suite longueur sans arbre de 144 mm

bull Un motoreacuteducteur de chez Faulhaber avec une puissance de 45 W reacutefeacuterences moteur 2657 reacuteducteur seacuterie 26 Rr =14) prix unitaire TTC 507 euro disponibles de suite longueur sans arbre 125 mm

Voir en annexes pour les caracteacuteristiques de ces reacutefeacuterencesAux vues des longueurs obtenues il nous est rapidement apparu qursquoune transmission

directe Motoreacuteducteur Roue nrsquoeacutetait pas envisageable du fait drsquoune longueur totale minimum de (125 + 30) 2 = 310 mm avec 125 la longueur drsquoun motoreacuteducteur 30 la largeur estimeacutee drsquoune roue Nous avons donc opteacute pour une solution agrave renvoi drsquoangle

d Choix deacutefinitif

Gracircce aux caracteacuteristiques preacuteceacutedentes nous avons choisi les RE035GPLG52 du fait de leurs disponibiliteacute caracteacuteristiques et prix En ce qui concerne la transmission par renvoi drsquoangle nous avons opteacute pour des systegravemes deacutejagrave tout fait qui permettent une plus grande preacutecision un meilleur rendement et un meilleur rapport qualiteacute prix que les montages artisanaux Voici la reacutefeacuterence que nous avons retenue

bull Reacutefeacuterence 748-437 chez Radiospares ou B332312 chez HPCeurope avec les caracteacuteristiques suivantes Rr = 1 C max = 068 Nm V max = 1500 trmin-1 η = 094 prix RS 5750 euro piegravece et prix HPC 52 euro piegravece (avec -10 en tant que participant agrave la Coupe) (Voir les autres caracteacuteristiques en annexes)Pour des raisons de disponibiliteacute nous avons commandeacute ces 2 piegraveces chez

Radiospares En ce qui concerne la liaison entre lrsquoarbre moteur et lrsquoarbre de la transmission nous

avons deacutecideacute drsquousiner un accouplement rigide dont les plans se trouvent en annexes Du coteacute moteur le blocage en rotation est assureacute par une vis de pression qui se trouve dans la gorge preacutevue initialement pour la clavette De lrsquoautre coteacute nous avons usineacute un meacuteplat sur lrsquoarbre du reacuteducteur meacuteplat sur lequel vient appuyer une autre vis de pression

3 Les supports des moteurs

A lrsquoorigine nous avions penseacute mettre les moteurs et les roues coaxiaux nous avions donc imagineacute un systegraveme de bride qui permettrait de bloquer le moteur selon 2 axes de translation et 2 axes de rotation gracircce agrave 2 vis de serrage associeacutee agrave une eacutequerre qui permettait le blocage selon le dernier axe de translation et de rotation Le tout eacutetait fixeacute sur une plaque de fond qui constituerait la base du robot

Voici donc a quoi ressembler cette bride (pour un moteur)

Bride de maintien pour moteur de faible longueur

Bride monteacutee sur la plaque de fond avec un moteur

Ensuite lorsque nous sommes passeacutes agrave la solution avec renvoi drsquoangle nous avons deacutecideacute drsquousiner une piegravece certes complexe mais qui proposait une universaliteacute notamment au niveau des diffeacuterentes positions des moteurs (verticale et horizontale) aspect qui satisfait pleinement au cahier des charges Cette piegravece que par la suite nous appellerons Bloc Moteur doit permettre la mise et le maintien en position du motoreacuteducteur la mise et le maintien en position du reacuteducteur la fixation de lrsquoensemble au sein du robot notamment sur la plaque de fond

Apregraves une petite eacutetude nous sommes arriveacutes agrave une piegravece de ce type

Bloc moteur pour la solution avec renvoi dangle

Cette nouvelle piegravece agrave de nombreux avantages

bull Elle nous permet de pouvoir incorporer le renvoi drsquoangle bull De maintenir les piegraveces entre-elles et de limiter les efforts directs sur les

diffeacuterents eacuteleacutementsbull Drsquoecirctre installeacute agrave lrsquohorizontale ou agrave la verticale

Effectivement lors de la conception du bloc moteur nous avons penseacute aux anneacutees futures et nous avons donc preacutevu un montage des moteurs agrave la verticale ou agrave lrsquohorizontale

En position verticale

En position horizontale

4 Les roues

Comme vu lors de la veille technologique les chenilles ont quasiment disparu de la compeacutetition Ceci est ducirc au fait que cette technologie est difficile agrave mettre en œuvre et que les regraveglements proposent des aires de jeux totalement planes

Or cette anneacutee un fosseacute fait son apparition dans le regraveglement Ce fosseacute de 36 mm de profondeur vient seacuteparer deux aires de jeu Une neacutecessiteacute de traverser le fosseacute apparaicirct donc pour aller renverser les quilles de lrsquoadversaire

Deux solutions sont alors possibles bull Traverser sur le pont aleacuteatoirebull Traverser le fosseacute

Si nous choisissons de traverser par le pont lrsquoideacutee de garder notre systegraveme de roues est correcte par contre un systegraveme agrave chenille permettrait de passer par le fosseacute

Apregraves reacuteflexion de lrsquoeacutequipe PR et des membres de la Coupe E=M6 la solution de traverser par le pont est retenue Ce qui nous a conduit tout droit vers la solution agrave roues

Les roues utiliseacutees sont des roues de roller de diamegravetre 80mm et drsquoune largeur de 22mm Ces roues sont relieacutees agrave lrsquoarbre drsquoun renvoi drsquoangle par lrsquointermeacutediaire drsquoun accouplement en aluminium

5 La base

Pour la base du robot il nous a parut indispensable de dimensionner la plaque de fond en eacutepaisseur De plus afin de maintenir la solution de modulariteacute de lrsquoensemble moteurs ndash roues nous avons deacutecideacute de fixer les deux supports moteurs sur un platine qui sera elle-mecircme fixeacutee agrave la plaque de fond du robot

Premiegraverement nous avons effectueacute un dimensionnement succinct de la platine

a Reacuteaction drsquoappui

0=sum Fx OK

0=sum Fy qLRbRaorRbRaqL210 =+=++minus

qLRa21=

AB = 027 m = L

P = mg P = 15 x 10 = 150 N

Q = 150 N270 mm soit q = 555 Nm

Bille folle

Accouplement

Bloc moteur

Renvoi drsquoangle

Platine

Base du robot

Motoreacuteducteur

Roue

b Moment de flexion

0 =sum= cMMf

02

sup2 =minus+ RaxqxMf

sup221

21 qxqLxMf minus=

c Flegraveche

)( xMfEIY =

sup221

21 qxqLxEIY minus=

161sup2

41 3 CqxqLxEIY +minus=

21241

121 43 CxCqxqLxEIY ++minus=

d Conditions aux limites

Y (x=0) = 0 C2 = 0

Y (x=L) = 0 012412

44

=+minus LCqLqL

241

4qLLC =

241

3qLC =

On obtient donc

xqLqxqLxEIY 343

241

241

121 +minus=

De mecircme

+minus=

242412

343 xLxLxEIqY

On sait que bull E = 210 000 10^6bull Y = 1 10^-3 mbull Q = 555 Nmbull L = 027 m

bull12

3bhI = b = 006 m

+

minus

=24

22416

128

343 LL

LLL

EYqI

36

4

0010102100000601052155512timestimes

timestimes=minus

h

Et enfin on trouve h lrsquoeacutepaisseur de la platine h= 43 mm

Apregraves reacuteflexion nous nous sommes rendu compte que ce calcul nrsquoeacutetait pas rigoureux car nous avons consideacutereacute la theacuteorie des poutres or dans notre cas nous ne pouvons satisfaire cette theacuteorie (Longueur de la section = 10 x la largeur de la section)

Il nous faut donc utiliser un modegravele plus preacutecis crsquoest pourquoi nous avons deacutecideacute de faire un calcul par eacuteleacutements finis sous Ideacuteas Ainsi nous trouvons une eacutepaisseur h = 32 mm

Il nous faut donc une platine de plus de 3 mm Etant donneacute que la platine sera solidairement fixeacutee agrave la base du robot nous avons deacutecideacute de prendre une eacutepaisseur de platine de 2 mm et une eacutepaisseur de base de robot de 2 mm Nous obtenons donc une eacutepaisseur totale de 4 mm Ainsi nous devrions avoir sous une charge de 15 kg moins drsquoun millimegravetre de flexion de la base du robot

6 Reacutesultats

Assemblage en position horizontale

Vue eacuteclateacutee en position verticale

Photo de lrsquoassemblage roues ndash blocs moteurs ndash moteurs ndash platine

Partie C Lrsquoeacutelectronique20 Les batteries

Afin de pouvoir choisir les batteries approprieacutees agrave notre application nous devons dans un premier temps faire une estimation de la consommation drsquoeacutenergie totale avec les pointes de courant envisageacutees dans notre robotIl est agrave noter que nous ne connaissons pas encore en deacutetail tous les eacuteleacutements annexes qui seront implanteacutes dans le robot comme par exemple les capteurs et actionneurs diverses qui seront choisis en fonction des objectifs technologiques atteints ou non de lrsquoassociation et de la strateacutegie finaleDans le but de pouvoir utiliser agrave nouveau dans lrsquoavenir notre base roulante nous avons choisi de surestimer les besoins en eacutenergie de sorte agrave ne pas ecirctre pris au deacutepourvu

La consommation pourrait se deacutecomposer ainsi - 2 moteurs de 24V sous 21A soit 1008 Watts pendant 100 du temps- 3 actionneurs de 21 Watts chacun soit 63 Watts pendant 50 du temps- 3A pour lrsquoeacutelectronique sous 5V soit 15 Watts pendant 100 du temps (Asservissement carte de commandes capteurs)

Ce qui nous fait au total une consommation maximale ~180 WattsLa consommation permanente devrait ecirctre ~147 Watts permanents il faut donc que les batteries puissent deacutebiter un courant de ~6 A sous 24 V durant le fonctionnement du robot

Apregraves une longue recherche on a pu reacutealiser le tableau comparatif des batteries suivant

typeDensiteacute

deacutenergie (WhKg)

Densiteacute deacutenergie (WhL)

auto-deacutecharge (mois)

voltage dune cellule (V)

temps de charge rapide

plomb 35 111 5 agrave 10 2 8h agrave 15h

NiCd (Nickel Cadnium) 50 94 10 agrave 20 12 1h30min

NiMH (Nickel Metal Hydride) 80 135 20 agrave 30 13 2h agrave 4h

Lithium Ion 100 196 5 agrave 10 36 2h agrave 4h

Lithium polymer 150 200 5 agrave 10 36 2h agrave 4h

AlKaline rechargeable 80 15 2h agrave 3h

type

cycle de charge-deacutecharge avant

que capaciteacute passe de 100 agrave

80

Courant max Courant max pic effet meacutemoire estimation

(euroWh) prixcycles

plomb 200 agrave 300 02C 05C M 0895 0003

NiCd (Nickel Cadnium) 1500 1C 20C H 416 0003

NiMH (Nickel Metal Hydride) 300 agrave 500 05C 5C L 2 0004

Lithium Ion 500 agrave 1000 1C 2C L 8 0008

Lithium polymer 300 agrave 500 1C 2C agrave 5C L 32 0006

AlKaline rechargeable 50 02C 05C H 178 0036

Effet meacutemoire L (Low) M (Medium) H (High)Courant max C signifie capaciteacute par exemple une batterie qui peut deacutelivrer un courant max de 1C de 4Ah pourra donc deacutelivrer 4A au maximum sans risque de deacuteteacuterioration

Nous nous sommes inteacuteresseacutes au courant maximum et au temps de charge rapide pour notre choix de batteriesLe type de batterie qui semble le plus approprieacute pour nous est le type Nickel-Cadnium parfaitement adapteacute au pic drsquoappel de courant que provoquent des moteurs pouvant supporter des charges rapides en 1h30min seulement afin de devoir preacutevoir trop de jeux de batteries diffeacuterents

Les batteries LI-Ion ou LI-Polymer preacutesentent une densiteacute eacutenergeacutetique tregraves inteacuteressante mais leur prix est beaucoup plus eacuteleveacute agrave lrsquoachat et de plus dans notre application roulant sur un sol peu accidenteacute la masse pouvant ecirctre transporteacutee est suffisante pour le type NiCd

Les batteries LI-Ion ou LI-Polymer sont plus adapteacutees agrave lrsquoaeacuteromodeacutelisme ou au petit appareil eacutelectroniqueQuant aux batteries au plomb qui sont vraiment bon marcheacute le courant maximum supporteacute est trop faible est supposerait drsquoavoir une forte capaciteacute

Nous voulons avoir une autonomie de 30 minutes il nous faut donc une eacutenergie de 735 WhOr sous 24 V les batteries doivent avoir une capaciteacute de ~3 AhComme les batteries NiCd peuvent deacutebiter un courant maximum de 1C (une fois leur capaciteacute) nous devons donc prendre des batteries de 6Ah sous 24 V ce qui nous donnera une autonomie de 1 heure

Il faudra donc soit acheter un bloc accumulateur NiCd de 24 V 6 Ah srsquoil existe dans le commerce soit le reacutealiser nous mecircme en assemblant diffeacuterents eacuteleacutements

Rappelons que lrsquoassociation en seacuterie permet drsquoadditionner les tensions des eacuteleacutements associeacutes et que lrsquoassociation en parallegravele permet drsquoadditionner les courants deacutebiteacutes

Par exemple des eacuteleacutements de 12 V chacun pour 3 Ah srsquoassocieraient ainsi

Soit deux seacuteries de 20 eacuteleacutements eacutequivalentes agrave 24 V et faisant une capaciteacute de 3 Ah chacune

Il est possible de reacutepartir les accumulateurs en diffeacuterents paquets pour faciliter le rangement dans le robot ou reacutepartir la masse ou eacuteventuellement trouver des packs dans le commerce

Dans le cas de lrsquoUV PR le choix des batteries reste pour le moment sur les NiCd mais pour les essais pratiques on utilisera des batteries au plomb que lrsquoon possegravede deacutejagrave drsquoautant plus que les essais sont reacutealiseacutes avec les moteurs de propulsion et lrsquoasservissement seul ce qui

neacutecessite un deacutebit de courant de 24105 = 4375 A sur 2 batteries soit asymp2187 A

Comme les batteries au plomb peuvent deacutebiter 02C il nous en faudrait des de asymp 109 Ah

Or les essais de la base roulante ne seront que de courtes dureacutees et lrsquoon se contentera donc drsquoutiliser des batteries de 6 Ah pour des raisons de volume mecircme si elles ne sont pas vraiment bien dimensionneacutees

21 La commande des moteurs

Dans un premier temps nous verrons un bref reacutecapitulatif des cartes et modules drsquoasservissement du commerce

Pour la commande les moteurs plusieurs solutions ont eacuteteacute envisageacutees - Un asservissement lsquotout faitrsquo analogique modules laquo Escap raquo- Une solution lsquoartisanalersquo carte avec asservissement numeacuterique- Un asservissement lsquotout faitrsquo numeacuterique circuits laquo LM629 raquo

a Comparatifs des modules drsquoasservissement et calcul des correcteurs

Veille technologique sur les systegravemes drsquoasservissement utiliseacutes par les diffeacuterentes eacutecoles de la coupe E= M6

Le but de cette partie est drsquoeacutetudier les principales techniques drsquoasservissement utiliseacutees par les eacutecoles de la Coupe E=M6 Ce document est loin drsquoecirctre exhaustif et servira de base agrave compleacuteter et actualiser pour les semestres et eacutequipes prochaines

Apregraves une eacutetude sur plus drsquoune trentaine drsquoeacutecoles il ressort trois formes drsquoasservissement la plus utiliseacutee agrave 85 est du type PID en majoriteacute reacuteduit au PI ensuite viennent les microcontrocircleurs PIC associeacutes au PID et les modules AVR nous allons par la suite deacutetailler ces trois solutions Il existe eacutegalement des systegravemes de controcircle dits agrave retour drsquoeacutetat jamais utiliseacutes jusqursquoagrave preacutesent pour la Coupe crsquoest pourquoi nous ne deacutevelopperons pas son approche

3 Systegraveme PID

httpwwwancrorgfichtechactionpidindexhtm

a Principe

Pour pouvoir tester un asservissement il faut dabord reacutealiser une plate-forme de deacuteveloppement le plus geacuteneacuteralement du type suivant Mais pour commencer un brin de theacuteorie illustreacute par des exemples Le scheacutema de principe est repreacutesenteacute ci-dessous

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

Nous avons bien un scheacutema en boucle fermeacutee puisque la sortie du systegraveme est reacuteinjecteacutee dans lentreacutee Les trois blocs bleus correspondent chacun agrave une fonctionnaliteacute Ki est le coefficient inteacutegral Kp le coefficient proportionnel et Kd le coefficient deacuteriveacute Chacun de ces coefficients a une fonctionnaliteacute bien preacutecise Commenccedilons par le plus simple le proportionnel

b Asservissement P

Lasservissement proportionnel est essentiel au fonctionnement du PID Il permet essentiellement de donner de la puissance au moteur Voici quelques reacutesultats dexpeacuterimentations avec Ki=0 et Kd=0

La courbe noire repreacutesente la consigne que lon deacutesire atteindre (Ud) cest un eacutechelon de valeur 32 La courbe bleue repreacutesente la vitesse reacuteelle du systegraveme (Y) Comme vous pouvez le constater plus Kp est grand plus le systegraveme converge vite vers sa valeur finale Mais en contrepartie pour des valeurs de Kp trop grandes le systegraveme oscille Mais lagrave nest pas notre plus gros problegraveme en effet sur ces courbes on voit nettement que la vitesse du moteur natteint jamais la vitesse deacutesireacutee Cest ce que lon appelle lerreur statique elle correspond agrave la diffeacuterence entre la vitesse reacuteelle et la vitesse deacutesireacutee en reacutegime eacutetablie (une fois que le systegraveme sest stabiliseacute) Pour compenser cette erreur statique on rajoute le terme inteacutegral

c Asservissement PI

Le correcteur inteacutegral sert principalement agrave supprimer lerreur statique Lideacutee principale est de charger ou inteacutegrer lerreur depuis le deacutebut et dajouter cette erreur agrave la consigne jusquagrave ce quelle devienne nulle Lorsque cette erreur est nulle le terme inteacutegral se stabilise et il compense parfaitement lerreur entre la consigne et la vitesse reacuteelle Deacutemonstration en image

On voit cette fois-ci que le terme inteacutegral a bien fonctionneacute et que lerreur statique est nulle On constate aussi que plus le gain Ki est grand plus le systegraveme converge vite En revanche plus Ki est grand plus le systegraveme oscille et plus le deacutepassement est grand Sur des asservissements en position le terme deacuteriveacute permet de diminuer le deacutepassement et les oscillations Nous allons voir que dans notre cas nous avons quelques problegravemes

d Asservissement PID ou agrave avance de phase

On a donc rajouteacute le terme deacuteriveacute comme tout bon livre dautomatique le preacuteconise et voici les reacutesultats

Cette fois ci jai choisi de repreacutesenter la tension appliqueacutee au moteur (U) le problegraveme est bien plus flagrant ici Vous voyez que lorsque lon ajoute le terme deacuteriveacute la commande est extrecircmement bruiteacutee En reacutealiteacute on somme agrave la commande la deacuteriveacutee de la vitesse reacuteelle que lon multiplie par un gain Kd La deacuteriveacutee dune vitesse est une acceacuteleacuteration cela signifie que lon amplifie tous les bruits dacceacuteleacuteration et en plus on les multiplient par un gain Kd Donc rajoute du bruit amplifieacute dans la commande Alors pourquoi mettent t-ils ce terme deacuteriveacutee dans les livres Simplement parce que ce bruit est typique des asservissement en vitesse Sur des asservissements en position ce problegraveme est moins freacutequent car la deacuteriveacutee de la position est la vitesse

Ici le problegraveme eacutetait visible parce que nous avons reacutealiseacute toutes ces courbes sur un systegraveme reacuteel Si nous avions simuleacute ces reacutesultats lacceacuteleacuteration naurait pas eacuteteacute bruiteacutee et les courbes auraient eacuteteacute parfaites Pour impleacutementer ce PID sur notre robot il a fallu programmer en numeacuterique une deacuteriveacutee et une inteacutegrale

e PID numeacuterique et reacuteglage

Notre premier problegraveme est de programmer le terme inteacutegral Il existe une meacutethode qui consiste agrave estimer la surface entre deux eacutechantillons mais dans notre cas nous avons des problegravemes dus aux bruits et agrave la freacutequence deacutechantillonnage Alors il faut sommer toutes les erreurs depuis de deacutebut

Notre second problegraveme est de programmer le terme deacuteriveacute La meacutethode ici est de calculer la pente entre deux eacutechantillons de e Theacuteoriquement cela revient agrave faire le calcul suivant

Avec la peacuteriode deacutechantillonnage Pour faire un asservissement numeacuterique il faut impeacuterativement avoir une peacuteriode fixe Pour gagner du temps de calcul geacuteneacuteralement on inteacutegre directement dans le gain Kd

Voici un lalgorithme exemple

Ti = 0 Initialise le terme inteacutegral

for ( i=1 i lt= Nb_cycles i++ )

Init_timers (1) Initialise le timer agrave notre peacuteriode 1 ms

Y = Codeur () Stoque la valeur du codeur dans Y Rst_codeur () Remet le codeur agrave zeacutero Ud = Consigne () Mise agrave jour de la consigne e_old=e Stoque e(t-1) e = Ud - Y Calcul de lerreur Ti = Ti + e Calcul de linteacutegral Calcul du PID U = Kp e Terme proportionnel

+ Ki Ti Terme inteacutegral + Kd ( e - e_old ) Terme deacuteriveacute Moteur (U) On applique la consigne

while ( end_timer() ) On attend la fin de la peacuteriode

Pour le reacuteglage des gains Kp Ki et Kd il existe diffeacuterentes meacutethodes Ici nous lavons fait de maniegravere empirique et le reacutesultats est plutocirct bon Linconveacutenient de ces meacutethodes est quelles demandent un modegravele du systegraveme ce qui est geacuteneacuteralement dur agrave produire Il existe

aussi des composants programmables qui permettent de faire directement lasservissement numeacuterique (HCTL 1100 LM629) Ils sont exactement baseacutes sur la meacutethode preacutesenteacutee ici

Pour ce qui est du reacuteglage des correcteurs lrsquooptimal est drsquoutiliser la meacutethode de lrsquooptimum dissymeacutetrique une fois que lrsquoon agrave reacutealiseacute le modegravele du systegraveme La plus part des eacutecoles ne reacutealisent pas ce modegravele et ce limite donc agrave une correction empirique en reacutealisant des tests ou en utilisant la meacutethode Ziegler-Nichols agrave partir de la reacuteponse agrave un eacutechelon de tension

Par la suite nous rappellerons les meacutethodes de Ziegler-Nichols et de lrsquooptimum dissymeacutetrique

f Les meacutethodes de Ziegler-Nichols

Ces meacutethodes fournissent des reacuteglages pour des correcteurs de type PID (pouvant ne comporter quune action Proportionnelle une action Proportionnelle et une action Inteacutegrale ou les 3 actions simultaneacutement) dont la structure est la suivante

bull MEacuteTHODE DE ZIEGLER NICHOLS TEMPORELLE

Elle est adapteacutee aux systegravemes stables en boucle ouverte qui ont une reacuteponse apeacuteriodique La reacuteponse agrave un eacutechelon unitaire du systegraveme physique doit ecirctre enregistreacutee Diffeacuterentes caracteacuteristiques de la reacuteponse obtenue sont mesureacutees

Le modegravele approcheacute utiliseacutee par Ziegler Nichols comporte une constante de temps et un retard pur ou bien un retard pur et un inteacutegrateur

Si le systegraveme physique comporte un inteacutegrateur les mesures de a et de L demeurent disponibles sur le deacutebut de la reacuteponse

Les reacuteglages suggeacutereacutes par la meacutethode temporelle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 1a - -correcteur PI 09a 3L -

correcteur PID 12a 2L L2Concernant le raffinement des reacuteglages augmenter Kp ou diminuer Ti augment les

oscillations de la sortie

bull MEacuteTHODE DE ZIEGLER NICHOLS FREacuteQUENTIELLE

Cette meacutethode convient particuliegraverement bien aux systegravemes instables en boucle ouverte pour lesquels la meacutethode temporelle nest pas envisageable Lexpeacuterimentation se fait sur le systegraveme boucleacute avec un simple gain proportionnel qui doit ecirctre stable Le principe est de modifier la valeur du gain par essai-erreur jusquagrave atteindre la limite de stabiliteacute (pheacutenomegravene de pompage) Il reste agrave relever le gain limite K0 obtenu et agrave mesurer la peacuteriode T0 des oscillations de la reacuteponse obtenue

Les reacuteglages suggeacutereacutes par la meacutethode freacutequentielle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 05 K0 - -correcteur PI 045 K0 08 T0 -

correcteur PID 06 K0 05 T0 0125 T0

A la page Internet suivante vous trouverez un simulateur de cette meacutethode

httpwww-hadocensieginpgfrhadocateliersreglageEmpCorrReglEmpCorrDroithtml

g Meacutethode de lrsquooptimum dyssimeacutetique (voir poly MC06 Chap 5 et 8)

Cette meacutethode srsquoapplique une fois le modegravele reacutealiseacute et mis sous la forme drsquoun second ordre

et on obtient le correcteur PI

pour une surtension deacutesireacutee QdB

Q = 10^(QdB20)λ= radic(Qsup2(Qsup2-1))Δφ = arcos (1 λ)α= ((1+sin(Δφ))cos(Δφ))sup2ωN= ωQαω0= ωQradicαKP= ω0 λ KQ

4 Les microcontrocircleurs

a Avant propos

Cette fiche se veut ecirctre sous la forme dun projet Un projet non termineacute ougrave chacun peut apporter sa contribution (ameacuteliorations adaptations corrections etc)De ce fait ces pages sont ameneacutees agrave eacutevoluer et vous-mecircme pourrez participer agrave leur eacutevolution

Pourquoi avoir choisit un tel mode de travail Tout simplement parce que le sujet est vaste et que des variations sont possibles suivant lutilisation quen feront les diffeacuterentes personnes

Le but de ce projet est de reacutealiser une double asservissement de vitesse (type PID) de deux moteurs sur un seul PIC (type 16F877) Lutiliteacute majeure eacutetant de faire rouler un robot bien droit et agrave la bonne vitesse A quoi ccedila sert plus preacuteciseacutement

Avec un seul PIC ce projet permet aux roboticiens amateurs et chevronneacutes de reacutealiser facilement leur asservissement de vitesse de moteurs agrave courant continu (en geacuteneacuteral les moteurs de propulsions de leur robot mais ccedila peut ecirctre bien sucircr dautres moteurs) La commande de lasservissement pourra se faire agrave terme en liaison seacuterie (deacutejagrave fait) I2C ou par bus ISA

b Avantages

Il existe bien sucircr dautres systegravemes qui gegraverent un asservissement de vitesses Des systegravemes professionnels existent comme les LM629 Ils ont linconveacutenient decirctre cher (et ce pour un seul moteur) et relativement complexes

Pourquoi chercher un fusil pour chasser des moustiques Le double asservissement sur PIC vous coucircte le prix dun PIC soit environ 15Euro pour un 16F877 actuellement et ce pour 2 moteurs Ce double asservissement se veut relativement simple De plus vous pouvez en modifier le programme et ladapter agrave vos besoins

c Inconveacutenients

Les personnes qui auront les moyens preacutefeacutererons opter pour un systegraveme professionnel certainement pour des raisons de fiabiliteacute mais cest agrave leurs risques et peacuterils -)La puissance du PIC eacutetant limiteacutee il ne peut pas reacutealiser des PID trop rapides ou trop complexes Il y a en particulier une limitation sur le nombre dimpulsions par seconde quil est capable de geacuterer

Le langage utiliseacute eacutetant le C il faut une licence du logiciel pour pouvoir modifier et recompiler le code source c Mais le projet se veut geacuteneacuterique Une version donneacutee pourra ecirctre utiliseacute sans recompilation en respectant quelques contraintes

d Asservissement

En fait on pourrait imaginer quil suffirait denvoyer au moteur une puissance constante pour quil tourne tout le temps agrave la mecircme vitesse Ce nest pas vrai du tout Tout dabord 2 moteurs dune mecircme seacuterie nauront pas forceacutement le mecircme comportement Ensuite parce que les niveaux de tension ou dautre diffeacuterences eacutelectriques peuvent jouer Enfin parce que des influences exteacuterieures (obstacles frein meacutecanique du robot) peuvent jouer

Du coup il est tregraves difficile de faire aller un moteur agrave la vitesse voulue Parfois ce nest pas gecircnant mais ccedila peut lecirctre Un exemple classique est le robot avec 2 roues motrices type char une configuration qui est tregraves courante Mais pour que ce robot aille droit il faut que les 2 moteurs aillent exactement agrave la mecircme vitesse

La solution est de faire un asservissement Cest a dire moduler dynamiquement la puissance envoyeacute aux moteurs suivant leur vitesse mesureacutee afin dadapter celle-ci agrave ce qui est deacutesireacuteeCela implique un eacuteleacutement tregraves important pour asservir il faut un capteur de vitesse du moteur En geacuteneacuteral il sagit dun compte-tour qui enverra N impulsions (ou pas) par tour de moteur Ensuite un programme va calculer en fonction de la vitesse mesureacutee du moteur la puissance agrave utiliser

Les asservissements sont constamment en train de chercher leacutequilibre Il faut bien comprendre quils mettent un certain temps agrave latteindre et ce dernier peut aussi ecirctre instable si lasservissement est mal reacutegleacute

Lasservissement quon va utiliser ici est un classique PIDou plus preacuteciseacutement un PI car pour des raisons de vitesses de traitement la composante deacuteriveacutee est laisseacutee de coteacute (mais rien de difficile agrave rajouter)

Le PID ou Proportionnel Inteacutegrale Deacuteriveacute est une meacutethode de calcul dasservissement

Soit Kp Ki et Kd les coefficients proportionnels inteacutegrale et deacuteriveacuteSoit e lerreur Vitesse mesureacutee moins vitesse demandeacuteeSoit Ti le terme inteacutegral dabord initialiseacute agrave 0

Consigne a appliquer (PWM) = Kp e + (1Ki) (Ti += e) + Kd (e - e(t-1))

On pourrait dire des pages et des pages sur le PID et ce nest pas mon but ici Merci de vous reporter au lien ci-dessous

Pour plus de deacutetails sur le PID la page de lANCR httpwwwancrorgfichtechactionpidindexhtmChez les Fribottes la Simulation de Jean-Claude httpwwwwikifreefrWiKiFriindexphpSimulateur20de20PID

e Le pic

Le PIC est un petit microcontrocircleur assez bon marche et simple a programmer comme a utiliser

La aussi je vais pas rentrer dans les deacutetails vous pouvez vous reporter agrave la bdtech du site Fribotte et en particulier aux cours de Bigonoff

Le PIC est ici programmeacute en C voir la page Fribotte ici Lutilisation du langage C permet dalleacuteger consideacuterablement le deacuteveloppement dune application compliqueacutee

2 Module AVR

httpwwwenseirbfr~matzfravrphp

Tregraves peu de renseignement sur ce module sinon ces informations drsquoun eacutetudiant de lrsquoEnseirb

Depuis plusieurs anneacutees je participe agrave la coupe de robotique E=M6 dont lobjectif pour chaque eacutequipe est de fabriquer un robot autonome devant se conformer agrave un regraveglement Pour plus dinfos vous pouvez vous rendre sur le site de mon eacutequipe Microb Technology ou bien sur le site de Planegravete Sciences lorganisme beacuteneacutevole qui organise cette compeacutetition

Jai deacutecouvert en 2001 les microcontrocircleurs Atmel AVR auxquels je me suis beaucoup attacheacute dune part parce quils sont assez performants pour des microcontrocircleurs 8 bits mais aussi et surtout car le fameux compilateur libre GCC est capable de compiler du code C pour ces petites becirctes Il existe de surcroicirct plusieurs outils libres permettant de les programmer de les simuler etc

Le but de ce projet est donc de deacutevelopper des modules servant dinterface geacuteneacuterique avec le hardware du microcontrocircleur quel que soit la version (par exemple les UART inclus dans les AVR AtMega sont diffeacuterents de ceux preacutesents dans les petits AVR) et de deacutevelopper des modules utiles pour certaines utilisations usuelles et pas seulement pour la coupe E=M6 (codage de hamming asservissement chiffrement etc)

Vous pouvez contacter leacutequipe de deacuteveloppement agrave avr-devdroids-corporg Pour le moment aucune release na eacuteteacute faite mais le travail est deacutejagrave bien avanceacute Chaque soir un screenshot du CVS est reacutealiseacute Il peut ne pas compiler mais normalement ccedila devrait fonctionner Voici le lien

3 Modules drsquoasservissement analogique laquo Escap raquo

Nous avons essayeacute de reacutecupeacuterer les cartes de commande Escap pour moteurs Escap qui avaient eacuteteacute utiliseacutees en 96 et 98 avec succegraves

Nous les avons monteacutes sur une base roulante qui pesait en tout 74 kgVoici grosso-modo leurs avantages et leurs inconveacutenients (pour les notices techniques voir le rapport 96 ou 98)

a Avantages

Cette carte inclut directement un asservissement avec correcteur PI la commande de puissance les ponts en H

Elle est tregraves facile agrave utiliser Elle est speacutecialement conccedilue pour les moteurs Escap que nous avons donc

parfaitement adapteacutee

b Inconveacutenients

Les moteurs ne fonctionnent correctement que sous 24v Les cartes et les moteurs semblent assez gourment Les cartes nantis de gros radiateurs sont relativement encombrantes Les tachymegravetres monteacutes sur les moteurs ne donnent pas une indication de position

mais de vitesse (qui plus est en analogique)

Nous avons preacutefeacutereacute refaire la partie commande car celle de 1996 souffrait de quelques deacutefauts (cf rapport 1996)

La conversion numeacuterique analogique

Pour reacutealiser la conversion numeacuterique analogique nous avons choisit un pont agrave reacutesistance R-2R

Nous pouvons consideacuterer que chaque bit est relieacute agrave un geacuteneacuterateur ideacuteal de tension (qui deacutelivre 0v ou 5v) Par conseacutequent la reacutesistance eacutequivalente quelque soit lrsquoeacutetat des bits et quelques soit le nombre de bits vue entre la sortie et la masse sera eacutegal agrave R

La tension Vs en fonction de lrsquoeacutetat des bits sera

Ce type de CAN eacutetant tregraves classique nous nrsquoindiquerons pas les deacutemonstrations toutefois vous pourrez les trouver tregraves facilement sur Internet ou sur le Cd-rom drsquoannexes joint au dossier

Le montage de Thevenin eacutequivalent est donc

Nous avons jugeacute qursquoune discreacutetisation sur 8 bits eacutetait un peu superflu crsquoest pourquoi nous nous contenterons de 4 bits (ce qui repreacutesentent quand mecircme 16 niveaux de vitesse)

bull Lrsquoadaptation du niveau de tension

Nous avons agrave la sortie du CAN une tension qui srsquoeacutetend de 0 agrave 5v or la commande des cartes Escap ce fait entre -5v et +5v

On peut voir cette adaptation comme lrsquoajout drsquoun offset de -25v et une amplification de gain 2

Voici le montage reacutealisant cette conversion

M1 est un montage suiveur qui lsquorecopiersquo la tension aux bornes de P1 mais sous une impeacutedance constante et eacutegale agrave 4R En 1996 lrsquoeacutequipe avait brancheacute P1 directement sur M3 mais cela a pour inconveacutenient de faire varier agrave la fois lrsquooffset et la penteLe potentiomegravetre P1 permet drsquoajuster lrsquooffset (permet par conseacutequent de reacutegler lrsquoarrecirct complet de moteur) (La valeur theacuteorique de lrsquooffset est 5V (cf formule en M3))

M2 est aussi un montage suiveur Le potentiomegravetre P2 permet drsquoajuster la pente (qui doit avoir un coefficient directeur de 2) Comme M2 est connecteacute au CAN dont la reacutesistance interne est de R P2 doit ecirctre a peut precirct eacutegal agrave R de la sorte la branche aura une reacutesistance eacutequivalente de 2R

M3 Sommateur (Vs = - 2 (Ve + Voffset))

Qursquoelle valeur choisir pour R

Theacuteoriquement on peut choisir nrsquoimporte quelle valeur pour R mais en pratique si R est trop petite une intensiteacute importante serait consommeacutee sans raison et si R est trop grande la forte impeacutedance du montage le rendra tregraves sensible aux parasites (secteur moteurshellip)Ce montage a eacuteteacute testeacute et fonctionne correctement pour R=5k les amplificateurs opeacuterationnels utiliseacutes sont des LM324 mais drsquoautres seraient tout agrave fait envisageables (peu de contraintes de vitesse et de tensions de deacutechets)

4 Conclusion

Nous avons preacutefeacutereacute ne pas utiliser les cartes Escap car les moteurs ne renvoient pas une position sous forme drsquoimpulsion mais une vitesse Etant donneacute que nous avions envisageacute un repeacuterage par odomeacutetrie cela compliquait consideacuterablement la tache

Toutefois il faut savoir que cette solution a eacuteteacute testeacutee et fonctionne tregraves bien (bonne preacutecision bonne dynamique) ainsi dans le cas ougrave le repeacuterage ne se fait pas par odomeacutetrie mais des balises exteacuterieures sachez que cette solution est tregraves pratique agrave utiliser En effet pour imposer une vitesse il suffit au microcontrocircleur drsquoappliquer sur un port un mot binaire correspondant agrave la vitesse voulue hellip et crsquoest tout La carte Escap se charge du reste

5 Carte drsquoasservissement numeacuterique laquo artisanale raquo

La carte reacutealiseacutee baseacutee sur un microcontrocircleur PIC 16F877A srsquoest aveacutereacutee fonctionnelle mais les tests drsquoalgorithmes drsquoasservissement nrsquoont pas eacuteteacute effectueacutesEn effet lrsquoutilisation de cette solution neacutecessite un microcontrocircleur deacutedieacute agrave lrsquoasservissement capable de communiquer via un protocole agrave deacutefinir avec la laquo carte megravere raquo (centralisant les retours des autres capteurs du robot et agissant sur les diffeacuterents actionneurs en fonction de la strateacutegie)Or afin de limiter le nombre de microcontrocircleurs sur le robot et du fait que lrsquoon dispose drsquoun budget suffisant nous avons deacutecideacute drsquoessayer drsquoutiliser des composants speacuteciaux reacutealisant lrsquoasservissement

Le systegraveme se deacutecompose en

- Un microcontrocircleur pour appliquer la PWM asservir et commander- Une carte de puissance pour chaque moteur baseacutee sur un LMD18200- Une carte compteur drsquoimpulsions pour les codeurs

Afin de favoriser lrsquointeractiviteacute et les reacuteglages jrsquoai ajouteacute une carte afficheur LCD avec 6 boutons sur la carte microcontrocircleur

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 8: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

UV PR Reacutealisation drsquoune base roulanteA04

Partie A Description geacuteneacuterale de la base roulante

1 Carte megravere

Il srsquoagit de la carte laquo intelligente raquo du robot elle commande le deacuteplacement mais aussi les diffeacuterents actionneurs et capteurs du robot Cette partie correspond agrave

Motorola HCS12 (MC9S12DP256B) Microchip PIC 18F458 Rabbit (RCM3400) PC104 hellip

2 Asservissement

Cette partie correspond au controcircle des actionneurs elle est lrsquointerface entre la carte megravere et les effecteurs Il peut srsquoagir de

Carte de puissance Pont en H Controcircle de vitesse hellip

Page 8

UV PR Reacutealisation drsquoune base roulanteA04

Partie B La meacutecanique 1 Veille technologique

Afin de pouvoir eacuteviter de proposer ou de faire des choses deacutepasseacutees inutiles ou non fiables nous avons proceacutedeacute agrave une petite veille technologique de tout ce qui se fait agrave la Coupe de France de Robotique Pour cela nous nous sommes baseacutes sur le site de lrsquoANSTJ qui est lrsquoassociation qui organise la Coupe de France Sur son site lrsquoANSTJ a recenseacute tous les posters des eacutequipes de la compeacutetition de 2004 Ces posters sont des documents remis agrave lrsquoorganisation en mai 2004 lors de la derniegravere compeacutetition A partir de ces posters nous avons regardeacute comment les eacutequipes avaient fait leur(s) robot(s)

bull Quel systegraveme de deacuteplacement (roues chenilles pattes) bull Quel type de moteurs bull Comment et ougrave les moteurs eacutetaient placeacutes bull Les accouplements (directs ou indirects) bull La forme des robots bull La modulariteacute du laquo bloc moteur raquo

Toutes ces informations sont recenseacutees dans un tableau Excel Ce document est en annexes

Les principales informations recueillies de cette veille sont

bull La plupart des eacutequipes utilisent une liaison directebull La motorisation se fait par des rouesbull Les roues sont placeacutees agrave lrsquoarriegravere du robotbull Les robots sont de formes rectangulaires ou carreacutees

Il faut preacuteciser que ces informations sont relatives au regraveglement de la compeacutetition de 2004 Ces choix sont donc fortement lieacutes au regraveglement On peut noter que dans le passeacute plus de robot avec transmission agrave renvoi drsquoangle existaient

Deux eacuteleacutements sont donc agrave fortement retenir les chenilles ont quasiment disparu et les robots cylindriques sont en forte voie de disparition

Nous tacirccherons donc drsquoeacuteviter ces deux aspects pour la conception de notre base roulante

Page 9

UV PR Reacutealisation drsquoune base roulanteA04

2 Le choix des moteurs

a Technologies

Le regraveglement de la compeacutetition ne laissant pas de reacuteels choix quant agrave la source drsquoeacutenergie utiliseacutee nous nous sommes directement orienteacutes vers des moteurs eacutelectriques Il existe plusieurs familles de moteurs eacutelectriques

bull Les moteurs Brushlessbull Les moteurs agrave Courant Continubull Les moteurs agrave Courant Alternatifbull Les moteurs Pas agrave PasForts de nos expeacuteriences passeacutees les moteurs Pas agrave Pas on eacuteteacute directement mis de

coteacute agrave cause de leur faibles vitesse de rotation et couple En ce qui concerne les moteurs agrave Courant Alternatif leur mise en œuvre est assez compliqueacutee pour des systegravemes embarqueacutes Nous avons donc le choix entre les moteurs Brushless et les moteurs agrave Courant Continu Nous avons opteacute pour les moteurs agrave Courant Continu car ceux-ci sont plus simples agrave controcircler moins coucircteux et mieux connus que les Brushless

b Dimensionnement

Le cahier des charges nous impose les caracteacuteristiques suivantes

- Diamegravetre des roues 8cm- Poids du robot 15 kg- Vitesse maximum drsquoentraicircnement 1ms-1 - Acceacuteleacuteration maximum 1ms-2

Lrsquoassociation avait agrave sa disposition 2 motoreacuteducteurs de types AMAX 26G PLG 26 de chez MDPmotor donc le premier objectif eacutetait de veacuterifier si lrsquoon pouvait se servir de ces moteurs pour reacutepondre aux speacutecifications que lrsquoeacutequipe crsquoeacutetait fixeacute

Nous allons donc vous expliquer la deacutemarche que nous avons suivie

On peut repreacutesenter lrsquoaxe moteur comme ci dessous

Moteur

Reacuteducteur

Palier

Roue

eacutecrasement

Page 10

UV PR Reacutealisation drsquoune base roulanteA04

Tout drsquoabord il faut deacuteterminer la force de reacutesistance au roulement celle-ci va deacutependre essentiellement de deux paramegravetres

- force de frottement essieu palier donneacutee par la relation suivante

rff D

dMgF 22

times

times= micro fmicro Coefficient de frottement essieu palier

rD Diamegravetre de la roue

2d

Rayon de lrsquoessieu

- force drsquoeacutecrasement

re D

fMgF 2timestimes=M Masse du robotf Eacutecrasement (00001 m)

Ce qui nous donne lrsquoexpression de la force de reacutesistance au roulement celle-ci devant ecirctre vaincue par le moteur pour mettre le robot en mouvement

+= fdMg

DF f

rres 2

2 micro

A partir de cette force on peut deacuteterminer le couple reacutesistant permanent agrave vaincre

resr

rp FDC times=2

Pour pouvoir appliquer le principe fondamental de la meacutecanique il nous faut deacuteterminer lrsquoinertie de la charge Afin drsquoobtenir ce paramegravetre nous allons consideacuterer qursquoil y a conservation de lrsquoeacutenergie cineacutetique entre le mouvement de rotation (de la roue) et de la translation (du robot) ce qui nous donne

222

221

21

=rArr=Ω r

ccccDMJMVJ

Si lrsquoon ramegravene cette inertie au moteur cela donne

rcmc

rm

ccmc

rmmccc

kJJJJ

JJ

ηη

η

121

21

2

2

2

2

times=hArrΩ

Ωtimes=

Ω=Ωk Rapport de reacuteduction

rη Rendement du reacuteducteurcJ Inertie de la charge

mcJ Inertie rameneacutee au moteur

Page 11

Maintenant nous avons tous les eacuteleacutements pour eacutecrire le principe fondamental de la meacutecanique

mrpmmmtot CCJ minus=γ

Ici compte tenu de notre application pour deacuteterminer le couple moteur neacutecessaire il faut tenir compte du nombre de moteurs

( )[ ]mrpmmcmmoteur

m CJJnb

C 1 ++= γ

Dans lrsquoapplication le nombre de moteurs srsquoeacutelegraveve agrave deux donc si lrsquoon regarde lrsquoexpression du couple moteur pour chaque phase cela donne

- phase drsquoacceacuteleacuteration

mmaccmacc

r

rpa

r

rmaccm

CP

kC

kDMJC

η

ηγ

η

1

122

1

max

2

2

timesΩtimes=

+times

times

+=

- phase de freinage

mmfrmfr

r

rpfr

r

rmfrm

CP

kC

kDMJC

η

ηγ

η

1

122

1

max

2

2

timesΩtimes=

+times

times

+=

- reacutegime permanent

mmpermmperm

r

rppermm

CP

kC

C

η

η1

21

max

timesΩtimes=

=

Maintenant que toutes les relations ont eacuteteacute mises en eacutevidence on peut regarder les reacutesultats que lrsquoon obtient avec le moteur AMAX 26G en gardant agrave lrsquoesprit que pour lapplication on considegravere que les phases drsquoacceacuteleacuteration seront preacutepondeacuterantes crsquoest pourquoi on dimensionnera les moteurs pour les phases drsquoacceacuteleacuterations

Apparemment le moteur aurait pu convenir si le reacuteducteur avait eu un rapport de reacuteduction plus faible En effet le moteur peut deacutelivrer le couple nominal neacutecessaire mais nous ne permet pas drsquoatteindre les vitesses souhaiteacutees Dans un premier temps nous avions revu nos speacutecifications agrave la baisses envisageacute la meilleure faccedilon de commander le moteur de faccedilon agrave ce que lrsquoon deacutemarre toujours en suivant la limite de puissance imposeacutee par le collecteur meacutecanique Ceci nous aurait permis drsquoavoir la meilleure dynamique du moteur La conseacutequence de ce type de fonctionnement aurait eacuteteacute un eacutechauffement excessif et un vieillissement preacutematureacute du moteur Donc les risques de casse auraient eacuteteacute multiplieacutes

Suite agrave un incident durant les phases de tests un des moteurs crsquoest vu endommageacutes crsquoest pourquoi il agrave fallu dimensionner drsquoautres moteursNous avons donc repris nos calculs avec un nouveau rapport de reacuteduction ce qui nous donne les reacutesultats suivants

Nous avons donc rechercheacute un moteur qui aurait pu avoir ses caracteacuteristiques agrave savoir - Couple nominal 34 mNm- Vitesse nominale 3342 trmin- Puissance nominale 16 W- Alimentation 24V- Reacuteducteur 1 14

Ce qui nous donnerait en sortie de reacuteducteur - Couple nominal 033 Nm- Vitesse nominale 239 trmin

Nous avons eu beaucoup de mal agrave trouver un moteur qui reacuteponde agrave ses exigences de maniegravere preacutecise et qui ait des caracteacuteristiques geacuteomeacutetriques compatibles avec les speacutecifications meacutecaniques Ces speacutecifications meacutecaniques eacutetant contraignantes compte tenu de la strateacutegie envisageacutee

Crsquoest pourquoi nous avons seacutelectionneacute un moteur un peu surdimensionneacute pour notre application toutefois cela va dans le bon sens comme nous sommes obligeacutes de mettre un renvoi drsquoangle ce qui va augmenter les pertes et lrsquoinertie Donc ce surdimensionnement devrait palier aux impreacutevus et combler nos neacutegligences

c Choix possibles

Gracircce aux informations qui preacutecegravedent on a pu choisir 3 Reacutefeacuterences bull Un motoreacuteducteur de chez MDP-Motor avec une vitesse en charge de 309 trmin-1 et

un couple de 057 Nm reacutefeacuterence AMAX32GHPPLG42S prix unitaire TTC 310 euro (avec -20 en tant que participant agrave la Coupe) disponibles sous 12 semaines longueur sans arbre de 142 mm

bull Un motoreacuteducteur de chez MDP-Motor avec une vitesse en charge de 559 trmin-1 et un couple de 060 Nm reacutefeacuterence RE035GPLG52 prix unitaire TTC 337 euro (avec -20 en tant que participant agrave la Coupe) disponibles de suite longueur sans arbre de 144 mm

bull Un motoreacuteducteur de chez Faulhaber avec une puissance de 45 W reacutefeacuterences moteur 2657 reacuteducteur seacuterie 26 Rr =14) prix unitaire TTC 507 euro disponibles de suite longueur sans arbre 125 mm

Voir en annexes pour les caracteacuteristiques de ces reacutefeacuterencesAux vues des longueurs obtenues il nous est rapidement apparu qursquoune transmission

directe Motoreacuteducteur Roue nrsquoeacutetait pas envisageable du fait drsquoune longueur totale minimum de (125 + 30) 2 = 310 mm avec 125 la longueur drsquoun motoreacuteducteur 30 la largeur estimeacutee drsquoune roue Nous avons donc opteacute pour une solution agrave renvoi drsquoangle

d Choix deacutefinitif

Gracircce aux caracteacuteristiques preacuteceacutedentes nous avons choisi les RE035GPLG52 du fait de leurs disponibiliteacute caracteacuteristiques et prix En ce qui concerne la transmission par renvoi drsquoangle nous avons opteacute pour des systegravemes deacutejagrave tout fait qui permettent une plus grande preacutecision un meilleur rendement et un meilleur rapport qualiteacute prix que les montages artisanaux Voici la reacutefeacuterence que nous avons retenue

bull Reacutefeacuterence 748-437 chez Radiospares ou B332312 chez HPCeurope avec les caracteacuteristiques suivantes Rr = 1 C max = 068 Nm V max = 1500 trmin-1 η = 094 prix RS 5750 euro piegravece et prix HPC 52 euro piegravece (avec -10 en tant que participant agrave la Coupe) (Voir les autres caracteacuteristiques en annexes)Pour des raisons de disponibiliteacute nous avons commandeacute ces 2 piegraveces chez

Radiospares En ce qui concerne la liaison entre lrsquoarbre moteur et lrsquoarbre de la transmission nous

avons deacutecideacute drsquousiner un accouplement rigide dont les plans se trouvent en annexes Du coteacute moteur le blocage en rotation est assureacute par une vis de pression qui se trouve dans la gorge preacutevue initialement pour la clavette De lrsquoautre coteacute nous avons usineacute un meacuteplat sur lrsquoarbre du reacuteducteur meacuteplat sur lequel vient appuyer une autre vis de pression

3 Les supports des moteurs

A lrsquoorigine nous avions penseacute mettre les moteurs et les roues coaxiaux nous avions donc imagineacute un systegraveme de bride qui permettrait de bloquer le moteur selon 2 axes de translation et 2 axes de rotation gracircce agrave 2 vis de serrage associeacutee agrave une eacutequerre qui permettait le blocage selon le dernier axe de translation et de rotation Le tout eacutetait fixeacute sur une plaque de fond qui constituerait la base du robot

Voici donc a quoi ressembler cette bride (pour un moteur)

Bride de maintien pour moteur de faible longueur

Bride monteacutee sur la plaque de fond avec un moteur

Ensuite lorsque nous sommes passeacutes agrave la solution avec renvoi drsquoangle nous avons deacutecideacute drsquousiner une piegravece certes complexe mais qui proposait une universaliteacute notamment au niveau des diffeacuterentes positions des moteurs (verticale et horizontale) aspect qui satisfait pleinement au cahier des charges Cette piegravece que par la suite nous appellerons Bloc Moteur doit permettre la mise et le maintien en position du motoreacuteducteur la mise et le maintien en position du reacuteducteur la fixation de lrsquoensemble au sein du robot notamment sur la plaque de fond

Apregraves une petite eacutetude nous sommes arriveacutes agrave une piegravece de ce type

Bloc moteur pour la solution avec renvoi dangle

Cette nouvelle piegravece agrave de nombreux avantages

bull Elle nous permet de pouvoir incorporer le renvoi drsquoangle bull De maintenir les piegraveces entre-elles et de limiter les efforts directs sur les

diffeacuterents eacuteleacutementsbull Drsquoecirctre installeacute agrave lrsquohorizontale ou agrave la verticale

Effectivement lors de la conception du bloc moteur nous avons penseacute aux anneacutees futures et nous avons donc preacutevu un montage des moteurs agrave la verticale ou agrave lrsquohorizontale

En position verticale

En position horizontale

4 Les roues

Comme vu lors de la veille technologique les chenilles ont quasiment disparu de la compeacutetition Ceci est ducirc au fait que cette technologie est difficile agrave mettre en œuvre et que les regraveglements proposent des aires de jeux totalement planes

Or cette anneacutee un fosseacute fait son apparition dans le regraveglement Ce fosseacute de 36 mm de profondeur vient seacuteparer deux aires de jeu Une neacutecessiteacute de traverser le fosseacute apparaicirct donc pour aller renverser les quilles de lrsquoadversaire

Deux solutions sont alors possibles bull Traverser sur le pont aleacuteatoirebull Traverser le fosseacute

Si nous choisissons de traverser par le pont lrsquoideacutee de garder notre systegraveme de roues est correcte par contre un systegraveme agrave chenille permettrait de passer par le fosseacute

Apregraves reacuteflexion de lrsquoeacutequipe PR et des membres de la Coupe E=M6 la solution de traverser par le pont est retenue Ce qui nous a conduit tout droit vers la solution agrave roues

Les roues utiliseacutees sont des roues de roller de diamegravetre 80mm et drsquoune largeur de 22mm Ces roues sont relieacutees agrave lrsquoarbre drsquoun renvoi drsquoangle par lrsquointermeacutediaire drsquoun accouplement en aluminium

5 La base

Pour la base du robot il nous a parut indispensable de dimensionner la plaque de fond en eacutepaisseur De plus afin de maintenir la solution de modulariteacute de lrsquoensemble moteurs ndash roues nous avons deacutecideacute de fixer les deux supports moteurs sur un platine qui sera elle-mecircme fixeacutee agrave la plaque de fond du robot

Premiegraverement nous avons effectueacute un dimensionnement succinct de la platine

a Reacuteaction drsquoappui

0=sum Fx OK

0=sum Fy qLRbRaorRbRaqL210 =+=++minus

qLRa21=

AB = 027 m = L

P = mg P = 15 x 10 = 150 N

Q = 150 N270 mm soit q = 555 Nm

Bille folle

Accouplement

Bloc moteur

Renvoi drsquoangle

Platine

Base du robot

Motoreacuteducteur

Roue

b Moment de flexion

0 =sum= cMMf

02

sup2 =minus+ RaxqxMf

sup221

21 qxqLxMf minus=

c Flegraveche

)( xMfEIY =

sup221

21 qxqLxEIY minus=

161sup2

41 3 CqxqLxEIY +minus=

21241

121 43 CxCqxqLxEIY ++minus=

d Conditions aux limites

Y (x=0) = 0 C2 = 0

Y (x=L) = 0 012412

44

=+minus LCqLqL

241

4qLLC =

241

3qLC =

On obtient donc

xqLqxqLxEIY 343

241

241

121 +minus=

De mecircme

+minus=

242412

343 xLxLxEIqY

On sait que bull E = 210 000 10^6bull Y = 1 10^-3 mbull Q = 555 Nmbull L = 027 m

bull12

3bhI = b = 006 m

+

minus

=24

22416

128

343 LL

LLL

EYqI

36

4

0010102100000601052155512timestimes

timestimes=minus

h

Et enfin on trouve h lrsquoeacutepaisseur de la platine h= 43 mm

Apregraves reacuteflexion nous nous sommes rendu compte que ce calcul nrsquoeacutetait pas rigoureux car nous avons consideacutereacute la theacuteorie des poutres or dans notre cas nous ne pouvons satisfaire cette theacuteorie (Longueur de la section = 10 x la largeur de la section)

Il nous faut donc utiliser un modegravele plus preacutecis crsquoest pourquoi nous avons deacutecideacute de faire un calcul par eacuteleacutements finis sous Ideacuteas Ainsi nous trouvons une eacutepaisseur h = 32 mm

Il nous faut donc une platine de plus de 3 mm Etant donneacute que la platine sera solidairement fixeacutee agrave la base du robot nous avons deacutecideacute de prendre une eacutepaisseur de platine de 2 mm et une eacutepaisseur de base de robot de 2 mm Nous obtenons donc une eacutepaisseur totale de 4 mm Ainsi nous devrions avoir sous une charge de 15 kg moins drsquoun millimegravetre de flexion de la base du robot

6 Reacutesultats

Assemblage en position horizontale

Vue eacuteclateacutee en position verticale

Photo de lrsquoassemblage roues ndash blocs moteurs ndash moteurs ndash platine

Partie C Lrsquoeacutelectronique20 Les batteries

Afin de pouvoir choisir les batteries approprieacutees agrave notre application nous devons dans un premier temps faire une estimation de la consommation drsquoeacutenergie totale avec les pointes de courant envisageacutees dans notre robotIl est agrave noter que nous ne connaissons pas encore en deacutetail tous les eacuteleacutements annexes qui seront implanteacutes dans le robot comme par exemple les capteurs et actionneurs diverses qui seront choisis en fonction des objectifs technologiques atteints ou non de lrsquoassociation et de la strateacutegie finaleDans le but de pouvoir utiliser agrave nouveau dans lrsquoavenir notre base roulante nous avons choisi de surestimer les besoins en eacutenergie de sorte agrave ne pas ecirctre pris au deacutepourvu

La consommation pourrait se deacutecomposer ainsi - 2 moteurs de 24V sous 21A soit 1008 Watts pendant 100 du temps- 3 actionneurs de 21 Watts chacun soit 63 Watts pendant 50 du temps- 3A pour lrsquoeacutelectronique sous 5V soit 15 Watts pendant 100 du temps (Asservissement carte de commandes capteurs)

Ce qui nous fait au total une consommation maximale ~180 WattsLa consommation permanente devrait ecirctre ~147 Watts permanents il faut donc que les batteries puissent deacutebiter un courant de ~6 A sous 24 V durant le fonctionnement du robot

Apregraves une longue recherche on a pu reacutealiser le tableau comparatif des batteries suivant

typeDensiteacute

deacutenergie (WhKg)

Densiteacute deacutenergie (WhL)

auto-deacutecharge (mois)

voltage dune cellule (V)

temps de charge rapide

plomb 35 111 5 agrave 10 2 8h agrave 15h

NiCd (Nickel Cadnium) 50 94 10 agrave 20 12 1h30min

NiMH (Nickel Metal Hydride) 80 135 20 agrave 30 13 2h agrave 4h

Lithium Ion 100 196 5 agrave 10 36 2h agrave 4h

Lithium polymer 150 200 5 agrave 10 36 2h agrave 4h

AlKaline rechargeable 80 15 2h agrave 3h

type

cycle de charge-deacutecharge avant

que capaciteacute passe de 100 agrave

80

Courant max Courant max pic effet meacutemoire estimation

(euroWh) prixcycles

plomb 200 agrave 300 02C 05C M 0895 0003

NiCd (Nickel Cadnium) 1500 1C 20C H 416 0003

NiMH (Nickel Metal Hydride) 300 agrave 500 05C 5C L 2 0004

Lithium Ion 500 agrave 1000 1C 2C L 8 0008

Lithium polymer 300 agrave 500 1C 2C agrave 5C L 32 0006

AlKaline rechargeable 50 02C 05C H 178 0036

Effet meacutemoire L (Low) M (Medium) H (High)Courant max C signifie capaciteacute par exemple une batterie qui peut deacutelivrer un courant max de 1C de 4Ah pourra donc deacutelivrer 4A au maximum sans risque de deacuteteacuterioration

Nous nous sommes inteacuteresseacutes au courant maximum et au temps de charge rapide pour notre choix de batteriesLe type de batterie qui semble le plus approprieacute pour nous est le type Nickel-Cadnium parfaitement adapteacute au pic drsquoappel de courant que provoquent des moteurs pouvant supporter des charges rapides en 1h30min seulement afin de devoir preacutevoir trop de jeux de batteries diffeacuterents

Les batteries LI-Ion ou LI-Polymer preacutesentent une densiteacute eacutenergeacutetique tregraves inteacuteressante mais leur prix est beaucoup plus eacuteleveacute agrave lrsquoachat et de plus dans notre application roulant sur un sol peu accidenteacute la masse pouvant ecirctre transporteacutee est suffisante pour le type NiCd

Les batteries LI-Ion ou LI-Polymer sont plus adapteacutees agrave lrsquoaeacuteromodeacutelisme ou au petit appareil eacutelectroniqueQuant aux batteries au plomb qui sont vraiment bon marcheacute le courant maximum supporteacute est trop faible est supposerait drsquoavoir une forte capaciteacute

Nous voulons avoir une autonomie de 30 minutes il nous faut donc une eacutenergie de 735 WhOr sous 24 V les batteries doivent avoir une capaciteacute de ~3 AhComme les batteries NiCd peuvent deacutebiter un courant maximum de 1C (une fois leur capaciteacute) nous devons donc prendre des batteries de 6Ah sous 24 V ce qui nous donnera une autonomie de 1 heure

Il faudra donc soit acheter un bloc accumulateur NiCd de 24 V 6 Ah srsquoil existe dans le commerce soit le reacutealiser nous mecircme en assemblant diffeacuterents eacuteleacutements

Rappelons que lrsquoassociation en seacuterie permet drsquoadditionner les tensions des eacuteleacutements associeacutes et que lrsquoassociation en parallegravele permet drsquoadditionner les courants deacutebiteacutes

Par exemple des eacuteleacutements de 12 V chacun pour 3 Ah srsquoassocieraient ainsi

Soit deux seacuteries de 20 eacuteleacutements eacutequivalentes agrave 24 V et faisant une capaciteacute de 3 Ah chacune

Il est possible de reacutepartir les accumulateurs en diffeacuterents paquets pour faciliter le rangement dans le robot ou reacutepartir la masse ou eacuteventuellement trouver des packs dans le commerce

Dans le cas de lrsquoUV PR le choix des batteries reste pour le moment sur les NiCd mais pour les essais pratiques on utilisera des batteries au plomb que lrsquoon possegravede deacutejagrave drsquoautant plus que les essais sont reacutealiseacutes avec les moteurs de propulsion et lrsquoasservissement seul ce qui

neacutecessite un deacutebit de courant de 24105 = 4375 A sur 2 batteries soit asymp2187 A

Comme les batteries au plomb peuvent deacutebiter 02C il nous en faudrait des de asymp 109 Ah

Or les essais de la base roulante ne seront que de courtes dureacutees et lrsquoon se contentera donc drsquoutiliser des batteries de 6 Ah pour des raisons de volume mecircme si elles ne sont pas vraiment bien dimensionneacutees

21 La commande des moteurs

Dans un premier temps nous verrons un bref reacutecapitulatif des cartes et modules drsquoasservissement du commerce

Pour la commande les moteurs plusieurs solutions ont eacuteteacute envisageacutees - Un asservissement lsquotout faitrsquo analogique modules laquo Escap raquo- Une solution lsquoartisanalersquo carte avec asservissement numeacuterique- Un asservissement lsquotout faitrsquo numeacuterique circuits laquo LM629 raquo

a Comparatifs des modules drsquoasservissement et calcul des correcteurs

Veille technologique sur les systegravemes drsquoasservissement utiliseacutes par les diffeacuterentes eacutecoles de la coupe E= M6

Le but de cette partie est drsquoeacutetudier les principales techniques drsquoasservissement utiliseacutees par les eacutecoles de la Coupe E=M6 Ce document est loin drsquoecirctre exhaustif et servira de base agrave compleacuteter et actualiser pour les semestres et eacutequipes prochaines

Apregraves une eacutetude sur plus drsquoune trentaine drsquoeacutecoles il ressort trois formes drsquoasservissement la plus utiliseacutee agrave 85 est du type PID en majoriteacute reacuteduit au PI ensuite viennent les microcontrocircleurs PIC associeacutes au PID et les modules AVR nous allons par la suite deacutetailler ces trois solutions Il existe eacutegalement des systegravemes de controcircle dits agrave retour drsquoeacutetat jamais utiliseacutes jusqursquoagrave preacutesent pour la Coupe crsquoest pourquoi nous ne deacutevelopperons pas son approche

3 Systegraveme PID

httpwwwancrorgfichtechactionpidindexhtm

a Principe

Pour pouvoir tester un asservissement il faut dabord reacutealiser une plate-forme de deacuteveloppement le plus geacuteneacuteralement du type suivant Mais pour commencer un brin de theacuteorie illustreacute par des exemples Le scheacutema de principe est repreacutesenteacute ci-dessous

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

Nous avons bien un scheacutema en boucle fermeacutee puisque la sortie du systegraveme est reacuteinjecteacutee dans lentreacutee Les trois blocs bleus correspondent chacun agrave une fonctionnaliteacute Ki est le coefficient inteacutegral Kp le coefficient proportionnel et Kd le coefficient deacuteriveacute Chacun de ces coefficients a une fonctionnaliteacute bien preacutecise Commenccedilons par le plus simple le proportionnel

b Asservissement P

Lasservissement proportionnel est essentiel au fonctionnement du PID Il permet essentiellement de donner de la puissance au moteur Voici quelques reacutesultats dexpeacuterimentations avec Ki=0 et Kd=0

La courbe noire repreacutesente la consigne que lon deacutesire atteindre (Ud) cest un eacutechelon de valeur 32 La courbe bleue repreacutesente la vitesse reacuteelle du systegraveme (Y) Comme vous pouvez le constater plus Kp est grand plus le systegraveme converge vite vers sa valeur finale Mais en contrepartie pour des valeurs de Kp trop grandes le systegraveme oscille Mais lagrave nest pas notre plus gros problegraveme en effet sur ces courbes on voit nettement que la vitesse du moteur natteint jamais la vitesse deacutesireacutee Cest ce que lon appelle lerreur statique elle correspond agrave la diffeacuterence entre la vitesse reacuteelle et la vitesse deacutesireacutee en reacutegime eacutetablie (une fois que le systegraveme sest stabiliseacute) Pour compenser cette erreur statique on rajoute le terme inteacutegral

c Asservissement PI

Le correcteur inteacutegral sert principalement agrave supprimer lerreur statique Lideacutee principale est de charger ou inteacutegrer lerreur depuis le deacutebut et dajouter cette erreur agrave la consigne jusquagrave ce quelle devienne nulle Lorsque cette erreur est nulle le terme inteacutegral se stabilise et il compense parfaitement lerreur entre la consigne et la vitesse reacuteelle Deacutemonstration en image

On voit cette fois-ci que le terme inteacutegral a bien fonctionneacute et que lerreur statique est nulle On constate aussi que plus le gain Ki est grand plus le systegraveme converge vite En revanche plus Ki est grand plus le systegraveme oscille et plus le deacutepassement est grand Sur des asservissements en position le terme deacuteriveacute permet de diminuer le deacutepassement et les oscillations Nous allons voir que dans notre cas nous avons quelques problegravemes

d Asservissement PID ou agrave avance de phase

On a donc rajouteacute le terme deacuteriveacute comme tout bon livre dautomatique le preacuteconise et voici les reacutesultats

Cette fois ci jai choisi de repreacutesenter la tension appliqueacutee au moteur (U) le problegraveme est bien plus flagrant ici Vous voyez que lorsque lon ajoute le terme deacuteriveacute la commande est extrecircmement bruiteacutee En reacutealiteacute on somme agrave la commande la deacuteriveacutee de la vitesse reacuteelle que lon multiplie par un gain Kd La deacuteriveacutee dune vitesse est une acceacuteleacuteration cela signifie que lon amplifie tous les bruits dacceacuteleacuteration et en plus on les multiplient par un gain Kd Donc rajoute du bruit amplifieacute dans la commande Alors pourquoi mettent t-ils ce terme deacuteriveacutee dans les livres Simplement parce que ce bruit est typique des asservissement en vitesse Sur des asservissements en position ce problegraveme est moins freacutequent car la deacuteriveacutee de la position est la vitesse

Ici le problegraveme eacutetait visible parce que nous avons reacutealiseacute toutes ces courbes sur un systegraveme reacuteel Si nous avions simuleacute ces reacutesultats lacceacuteleacuteration naurait pas eacuteteacute bruiteacutee et les courbes auraient eacuteteacute parfaites Pour impleacutementer ce PID sur notre robot il a fallu programmer en numeacuterique une deacuteriveacutee et une inteacutegrale

e PID numeacuterique et reacuteglage

Notre premier problegraveme est de programmer le terme inteacutegral Il existe une meacutethode qui consiste agrave estimer la surface entre deux eacutechantillons mais dans notre cas nous avons des problegravemes dus aux bruits et agrave la freacutequence deacutechantillonnage Alors il faut sommer toutes les erreurs depuis de deacutebut

Notre second problegraveme est de programmer le terme deacuteriveacute La meacutethode ici est de calculer la pente entre deux eacutechantillons de e Theacuteoriquement cela revient agrave faire le calcul suivant

Avec la peacuteriode deacutechantillonnage Pour faire un asservissement numeacuterique il faut impeacuterativement avoir une peacuteriode fixe Pour gagner du temps de calcul geacuteneacuteralement on inteacutegre directement dans le gain Kd

Voici un lalgorithme exemple

Ti = 0 Initialise le terme inteacutegral

for ( i=1 i lt= Nb_cycles i++ )

Init_timers (1) Initialise le timer agrave notre peacuteriode 1 ms

Y = Codeur () Stoque la valeur du codeur dans Y Rst_codeur () Remet le codeur agrave zeacutero Ud = Consigne () Mise agrave jour de la consigne e_old=e Stoque e(t-1) e = Ud - Y Calcul de lerreur Ti = Ti + e Calcul de linteacutegral Calcul du PID U = Kp e Terme proportionnel

+ Ki Ti Terme inteacutegral + Kd ( e - e_old ) Terme deacuteriveacute Moteur (U) On applique la consigne

while ( end_timer() ) On attend la fin de la peacuteriode

Pour le reacuteglage des gains Kp Ki et Kd il existe diffeacuterentes meacutethodes Ici nous lavons fait de maniegravere empirique et le reacutesultats est plutocirct bon Linconveacutenient de ces meacutethodes est quelles demandent un modegravele du systegraveme ce qui est geacuteneacuteralement dur agrave produire Il existe

aussi des composants programmables qui permettent de faire directement lasservissement numeacuterique (HCTL 1100 LM629) Ils sont exactement baseacutes sur la meacutethode preacutesenteacutee ici

Pour ce qui est du reacuteglage des correcteurs lrsquooptimal est drsquoutiliser la meacutethode de lrsquooptimum dissymeacutetrique une fois que lrsquoon agrave reacutealiseacute le modegravele du systegraveme La plus part des eacutecoles ne reacutealisent pas ce modegravele et ce limite donc agrave une correction empirique en reacutealisant des tests ou en utilisant la meacutethode Ziegler-Nichols agrave partir de la reacuteponse agrave un eacutechelon de tension

Par la suite nous rappellerons les meacutethodes de Ziegler-Nichols et de lrsquooptimum dissymeacutetrique

f Les meacutethodes de Ziegler-Nichols

Ces meacutethodes fournissent des reacuteglages pour des correcteurs de type PID (pouvant ne comporter quune action Proportionnelle une action Proportionnelle et une action Inteacutegrale ou les 3 actions simultaneacutement) dont la structure est la suivante

bull MEacuteTHODE DE ZIEGLER NICHOLS TEMPORELLE

Elle est adapteacutee aux systegravemes stables en boucle ouverte qui ont une reacuteponse apeacuteriodique La reacuteponse agrave un eacutechelon unitaire du systegraveme physique doit ecirctre enregistreacutee Diffeacuterentes caracteacuteristiques de la reacuteponse obtenue sont mesureacutees

Le modegravele approcheacute utiliseacutee par Ziegler Nichols comporte une constante de temps et un retard pur ou bien un retard pur et un inteacutegrateur

Si le systegraveme physique comporte un inteacutegrateur les mesures de a et de L demeurent disponibles sur le deacutebut de la reacuteponse

Les reacuteglages suggeacutereacutes par la meacutethode temporelle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 1a - -correcteur PI 09a 3L -

correcteur PID 12a 2L L2Concernant le raffinement des reacuteglages augmenter Kp ou diminuer Ti augment les

oscillations de la sortie

bull MEacuteTHODE DE ZIEGLER NICHOLS FREacuteQUENTIELLE

Cette meacutethode convient particuliegraverement bien aux systegravemes instables en boucle ouverte pour lesquels la meacutethode temporelle nest pas envisageable Lexpeacuterimentation se fait sur le systegraveme boucleacute avec un simple gain proportionnel qui doit ecirctre stable Le principe est de modifier la valeur du gain par essai-erreur jusquagrave atteindre la limite de stabiliteacute (pheacutenomegravene de pompage) Il reste agrave relever le gain limite K0 obtenu et agrave mesurer la peacuteriode T0 des oscillations de la reacuteponse obtenue

Les reacuteglages suggeacutereacutes par la meacutethode freacutequentielle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 05 K0 - -correcteur PI 045 K0 08 T0 -

correcteur PID 06 K0 05 T0 0125 T0

A la page Internet suivante vous trouverez un simulateur de cette meacutethode

httpwww-hadocensieginpgfrhadocateliersreglageEmpCorrReglEmpCorrDroithtml

g Meacutethode de lrsquooptimum dyssimeacutetique (voir poly MC06 Chap 5 et 8)

Cette meacutethode srsquoapplique une fois le modegravele reacutealiseacute et mis sous la forme drsquoun second ordre

et on obtient le correcteur PI

pour une surtension deacutesireacutee QdB

Q = 10^(QdB20)λ= radic(Qsup2(Qsup2-1))Δφ = arcos (1 λ)α= ((1+sin(Δφ))cos(Δφ))sup2ωN= ωQαω0= ωQradicαKP= ω0 λ KQ

4 Les microcontrocircleurs

a Avant propos

Cette fiche se veut ecirctre sous la forme dun projet Un projet non termineacute ougrave chacun peut apporter sa contribution (ameacuteliorations adaptations corrections etc)De ce fait ces pages sont ameneacutees agrave eacutevoluer et vous-mecircme pourrez participer agrave leur eacutevolution

Pourquoi avoir choisit un tel mode de travail Tout simplement parce que le sujet est vaste et que des variations sont possibles suivant lutilisation quen feront les diffeacuterentes personnes

Le but de ce projet est de reacutealiser une double asservissement de vitesse (type PID) de deux moteurs sur un seul PIC (type 16F877) Lutiliteacute majeure eacutetant de faire rouler un robot bien droit et agrave la bonne vitesse A quoi ccedila sert plus preacuteciseacutement

Avec un seul PIC ce projet permet aux roboticiens amateurs et chevronneacutes de reacutealiser facilement leur asservissement de vitesse de moteurs agrave courant continu (en geacuteneacuteral les moteurs de propulsions de leur robot mais ccedila peut ecirctre bien sucircr dautres moteurs) La commande de lasservissement pourra se faire agrave terme en liaison seacuterie (deacutejagrave fait) I2C ou par bus ISA

b Avantages

Il existe bien sucircr dautres systegravemes qui gegraverent un asservissement de vitesses Des systegravemes professionnels existent comme les LM629 Ils ont linconveacutenient decirctre cher (et ce pour un seul moteur) et relativement complexes

Pourquoi chercher un fusil pour chasser des moustiques Le double asservissement sur PIC vous coucircte le prix dun PIC soit environ 15Euro pour un 16F877 actuellement et ce pour 2 moteurs Ce double asservissement se veut relativement simple De plus vous pouvez en modifier le programme et ladapter agrave vos besoins

c Inconveacutenients

Les personnes qui auront les moyens preacutefeacutererons opter pour un systegraveme professionnel certainement pour des raisons de fiabiliteacute mais cest agrave leurs risques et peacuterils -)La puissance du PIC eacutetant limiteacutee il ne peut pas reacutealiser des PID trop rapides ou trop complexes Il y a en particulier une limitation sur le nombre dimpulsions par seconde quil est capable de geacuterer

Le langage utiliseacute eacutetant le C il faut une licence du logiciel pour pouvoir modifier et recompiler le code source c Mais le projet se veut geacuteneacuterique Une version donneacutee pourra ecirctre utiliseacute sans recompilation en respectant quelques contraintes

d Asservissement

En fait on pourrait imaginer quil suffirait denvoyer au moteur une puissance constante pour quil tourne tout le temps agrave la mecircme vitesse Ce nest pas vrai du tout Tout dabord 2 moteurs dune mecircme seacuterie nauront pas forceacutement le mecircme comportement Ensuite parce que les niveaux de tension ou dautre diffeacuterences eacutelectriques peuvent jouer Enfin parce que des influences exteacuterieures (obstacles frein meacutecanique du robot) peuvent jouer

Du coup il est tregraves difficile de faire aller un moteur agrave la vitesse voulue Parfois ce nest pas gecircnant mais ccedila peut lecirctre Un exemple classique est le robot avec 2 roues motrices type char une configuration qui est tregraves courante Mais pour que ce robot aille droit il faut que les 2 moteurs aillent exactement agrave la mecircme vitesse

La solution est de faire un asservissement Cest a dire moduler dynamiquement la puissance envoyeacute aux moteurs suivant leur vitesse mesureacutee afin dadapter celle-ci agrave ce qui est deacutesireacuteeCela implique un eacuteleacutement tregraves important pour asservir il faut un capteur de vitesse du moteur En geacuteneacuteral il sagit dun compte-tour qui enverra N impulsions (ou pas) par tour de moteur Ensuite un programme va calculer en fonction de la vitesse mesureacutee du moteur la puissance agrave utiliser

Les asservissements sont constamment en train de chercher leacutequilibre Il faut bien comprendre quils mettent un certain temps agrave latteindre et ce dernier peut aussi ecirctre instable si lasservissement est mal reacutegleacute

Lasservissement quon va utiliser ici est un classique PIDou plus preacuteciseacutement un PI car pour des raisons de vitesses de traitement la composante deacuteriveacutee est laisseacutee de coteacute (mais rien de difficile agrave rajouter)

Le PID ou Proportionnel Inteacutegrale Deacuteriveacute est une meacutethode de calcul dasservissement

Soit Kp Ki et Kd les coefficients proportionnels inteacutegrale et deacuteriveacuteSoit e lerreur Vitesse mesureacutee moins vitesse demandeacuteeSoit Ti le terme inteacutegral dabord initialiseacute agrave 0

Consigne a appliquer (PWM) = Kp e + (1Ki) (Ti += e) + Kd (e - e(t-1))

On pourrait dire des pages et des pages sur le PID et ce nest pas mon but ici Merci de vous reporter au lien ci-dessous

Pour plus de deacutetails sur le PID la page de lANCR httpwwwancrorgfichtechactionpidindexhtmChez les Fribottes la Simulation de Jean-Claude httpwwwwikifreefrWiKiFriindexphpSimulateur20de20PID

e Le pic

Le PIC est un petit microcontrocircleur assez bon marche et simple a programmer comme a utiliser

La aussi je vais pas rentrer dans les deacutetails vous pouvez vous reporter agrave la bdtech du site Fribotte et en particulier aux cours de Bigonoff

Le PIC est ici programmeacute en C voir la page Fribotte ici Lutilisation du langage C permet dalleacuteger consideacuterablement le deacuteveloppement dune application compliqueacutee

2 Module AVR

httpwwwenseirbfr~matzfravrphp

Tregraves peu de renseignement sur ce module sinon ces informations drsquoun eacutetudiant de lrsquoEnseirb

Depuis plusieurs anneacutees je participe agrave la coupe de robotique E=M6 dont lobjectif pour chaque eacutequipe est de fabriquer un robot autonome devant se conformer agrave un regraveglement Pour plus dinfos vous pouvez vous rendre sur le site de mon eacutequipe Microb Technology ou bien sur le site de Planegravete Sciences lorganisme beacuteneacutevole qui organise cette compeacutetition

Jai deacutecouvert en 2001 les microcontrocircleurs Atmel AVR auxquels je me suis beaucoup attacheacute dune part parce quils sont assez performants pour des microcontrocircleurs 8 bits mais aussi et surtout car le fameux compilateur libre GCC est capable de compiler du code C pour ces petites becirctes Il existe de surcroicirct plusieurs outils libres permettant de les programmer de les simuler etc

Le but de ce projet est donc de deacutevelopper des modules servant dinterface geacuteneacuterique avec le hardware du microcontrocircleur quel que soit la version (par exemple les UART inclus dans les AVR AtMega sont diffeacuterents de ceux preacutesents dans les petits AVR) et de deacutevelopper des modules utiles pour certaines utilisations usuelles et pas seulement pour la coupe E=M6 (codage de hamming asservissement chiffrement etc)

Vous pouvez contacter leacutequipe de deacuteveloppement agrave avr-devdroids-corporg Pour le moment aucune release na eacuteteacute faite mais le travail est deacutejagrave bien avanceacute Chaque soir un screenshot du CVS est reacutealiseacute Il peut ne pas compiler mais normalement ccedila devrait fonctionner Voici le lien

3 Modules drsquoasservissement analogique laquo Escap raquo

Nous avons essayeacute de reacutecupeacuterer les cartes de commande Escap pour moteurs Escap qui avaient eacuteteacute utiliseacutees en 96 et 98 avec succegraves

Nous les avons monteacutes sur une base roulante qui pesait en tout 74 kgVoici grosso-modo leurs avantages et leurs inconveacutenients (pour les notices techniques voir le rapport 96 ou 98)

a Avantages

Cette carte inclut directement un asservissement avec correcteur PI la commande de puissance les ponts en H

Elle est tregraves facile agrave utiliser Elle est speacutecialement conccedilue pour les moteurs Escap que nous avons donc

parfaitement adapteacutee

b Inconveacutenients

Les moteurs ne fonctionnent correctement que sous 24v Les cartes et les moteurs semblent assez gourment Les cartes nantis de gros radiateurs sont relativement encombrantes Les tachymegravetres monteacutes sur les moteurs ne donnent pas une indication de position

mais de vitesse (qui plus est en analogique)

Nous avons preacutefeacutereacute refaire la partie commande car celle de 1996 souffrait de quelques deacutefauts (cf rapport 1996)

La conversion numeacuterique analogique

Pour reacutealiser la conversion numeacuterique analogique nous avons choisit un pont agrave reacutesistance R-2R

Nous pouvons consideacuterer que chaque bit est relieacute agrave un geacuteneacuterateur ideacuteal de tension (qui deacutelivre 0v ou 5v) Par conseacutequent la reacutesistance eacutequivalente quelque soit lrsquoeacutetat des bits et quelques soit le nombre de bits vue entre la sortie et la masse sera eacutegal agrave R

La tension Vs en fonction de lrsquoeacutetat des bits sera

Ce type de CAN eacutetant tregraves classique nous nrsquoindiquerons pas les deacutemonstrations toutefois vous pourrez les trouver tregraves facilement sur Internet ou sur le Cd-rom drsquoannexes joint au dossier

Le montage de Thevenin eacutequivalent est donc

Nous avons jugeacute qursquoune discreacutetisation sur 8 bits eacutetait un peu superflu crsquoest pourquoi nous nous contenterons de 4 bits (ce qui repreacutesentent quand mecircme 16 niveaux de vitesse)

bull Lrsquoadaptation du niveau de tension

Nous avons agrave la sortie du CAN une tension qui srsquoeacutetend de 0 agrave 5v or la commande des cartes Escap ce fait entre -5v et +5v

On peut voir cette adaptation comme lrsquoajout drsquoun offset de -25v et une amplification de gain 2

Voici le montage reacutealisant cette conversion

M1 est un montage suiveur qui lsquorecopiersquo la tension aux bornes de P1 mais sous une impeacutedance constante et eacutegale agrave 4R En 1996 lrsquoeacutequipe avait brancheacute P1 directement sur M3 mais cela a pour inconveacutenient de faire varier agrave la fois lrsquooffset et la penteLe potentiomegravetre P1 permet drsquoajuster lrsquooffset (permet par conseacutequent de reacutegler lrsquoarrecirct complet de moteur) (La valeur theacuteorique de lrsquooffset est 5V (cf formule en M3))

M2 est aussi un montage suiveur Le potentiomegravetre P2 permet drsquoajuster la pente (qui doit avoir un coefficient directeur de 2) Comme M2 est connecteacute au CAN dont la reacutesistance interne est de R P2 doit ecirctre a peut precirct eacutegal agrave R de la sorte la branche aura une reacutesistance eacutequivalente de 2R

M3 Sommateur (Vs = - 2 (Ve + Voffset))

Qursquoelle valeur choisir pour R

Theacuteoriquement on peut choisir nrsquoimporte quelle valeur pour R mais en pratique si R est trop petite une intensiteacute importante serait consommeacutee sans raison et si R est trop grande la forte impeacutedance du montage le rendra tregraves sensible aux parasites (secteur moteurshellip)Ce montage a eacuteteacute testeacute et fonctionne correctement pour R=5k les amplificateurs opeacuterationnels utiliseacutes sont des LM324 mais drsquoautres seraient tout agrave fait envisageables (peu de contraintes de vitesse et de tensions de deacutechets)

4 Conclusion

Nous avons preacutefeacutereacute ne pas utiliser les cartes Escap car les moteurs ne renvoient pas une position sous forme drsquoimpulsion mais une vitesse Etant donneacute que nous avions envisageacute un repeacuterage par odomeacutetrie cela compliquait consideacuterablement la tache

Toutefois il faut savoir que cette solution a eacuteteacute testeacutee et fonctionne tregraves bien (bonne preacutecision bonne dynamique) ainsi dans le cas ougrave le repeacuterage ne se fait pas par odomeacutetrie mais des balises exteacuterieures sachez que cette solution est tregraves pratique agrave utiliser En effet pour imposer une vitesse il suffit au microcontrocircleur drsquoappliquer sur un port un mot binaire correspondant agrave la vitesse voulue hellip et crsquoest tout La carte Escap se charge du reste

5 Carte drsquoasservissement numeacuterique laquo artisanale raquo

La carte reacutealiseacutee baseacutee sur un microcontrocircleur PIC 16F877A srsquoest aveacutereacutee fonctionnelle mais les tests drsquoalgorithmes drsquoasservissement nrsquoont pas eacuteteacute effectueacutesEn effet lrsquoutilisation de cette solution neacutecessite un microcontrocircleur deacutedieacute agrave lrsquoasservissement capable de communiquer via un protocole agrave deacutefinir avec la laquo carte megravere raquo (centralisant les retours des autres capteurs du robot et agissant sur les diffeacuterents actionneurs en fonction de la strateacutegie)Or afin de limiter le nombre de microcontrocircleurs sur le robot et du fait que lrsquoon dispose drsquoun budget suffisant nous avons deacutecideacute drsquoessayer drsquoutiliser des composants speacuteciaux reacutealisant lrsquoasservissement

Le systegraveme se deacutecompose en

- Un microcontrocircleur pour appliquer la PWM asservir et commander- Une carte de puissance pour chaque moteur baseacutee sur un LMD18200- Une carte compteur drsquoimpulsions pour les codeurs

Afin de favoriser lrsquointeractiviteacute et les reacuteglages jrsquoai ajouteacute une carte afficheur LCD avec 6 boutons sur la carte microcontrocircleur

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 9: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

UV PR Reacutealisation drsquoune base roulanteA04

Partie B La meacutecanique 1 Veille technologique

Afin de pouvoir eacuteviter de proposer ou de faire des choses deacutepasseacutees inutiles ou non fiables nous avons proceacutedeacute agrave une petite veille technologique de tout ce qui se fait agrave la Coupe de France de Robotique Pour cela nous nous sommes baseacutes sur le site de lrsquoANSTJ qui est lrsquoassociation qui organise la Coupe de France Sur son site lrsquoANSTJ a recenseacute tous les posters des eacutequipes de la compeacutetition de 2004 Ces posters sont des documents remis agrave lrsquoorganisation en mai 2004 lors de la derniegravere compeacutetition A partir de ces posters nous avons regardeacute comment les eacutequipes avaient fait leur(s) robot(s)

bull Quel systegraveme de deacuteplacement (roues chenilles pattes) bull Quel type de moteurs bull Comment et ougrave les moteurs eacutetaient placeacutes bull Les accouplements (directs ou indirects) bull La forme des robots bull La modulariteacute du laquo bloc moteur raquo

Toutes ces informations sont recenseacutees dans un tableau Excel Ce document est en annexes

Les principales informations recueillies de cette veille sont

bull La plupart des eacutequipes utilisent une liaison directebull La motorisation se fait par des rouesbull Les roues sont placeacutees agrave lrsquoarriegravere du robotbull Les robots sont de formes rectangulaires ou carreacutees

Il faut preacuteciser que ces informations sont relatives au regraveglement de la compeacutetition de 2004 Ces choix sont donc fortement lieacutes au regraveglement On peut noter que dans le passeacute plus de robot avec transmission agrave renvoi drsquoangle existaient

Deux eacuteleacutements sont donc agrave fortement retenir les chenilles ont quasiment disparu et les robots cylindriques sont en forte voie de disparition

Nous tacirccherons donc drsquoeacuteviter ces deux aspects pour la conception de notre base roulante

Page 9

UV PR Reacutealisation drsquoune base roulanteA04

2 Le choix des moteurs

a Technologies

Le regraveglement de la compeacutetition ne laissant pas de reacuteels choix quant agrave la source drsquoeacutenergie utiliseacutee nous nous sommes directement orienteacutes vers des moteurs eacutelectriques Il existe plusieurs familles de moteurs eacutelectriques

bull Les moteurs Brushlessbull Les moteurs agrave Courant Continubull Les moteurs agrave Courant Alternatifbull Les moteurs Pas agrave PasForts de nos expeacuteriences passeacutees les moteurs Pas agrave Pas on eacuteteacute directement mis de

coteacute agrave cause de leur faibles vitesse de rotation et couple En ce qui concerne les moteurs agrave Courant Alternatif leur mise en œuvre est assez compliqueacutee pour des systegravemes embarqueacutes Nous avons donc le choix entre les moteurs Brushless et les moteurs agrave Courant Continu Nous avons opteacute pour les moteurs agrave Courant Continu car ceux-ci sont plus simples agrave controcircler moins coucircteux et mieux connus que les Brushless

b Dimensionnement

Le cahier des charges nous impose les caracteacuteristiques suivantes

- Diamegravetre des roues 8cm- Poids du robot 15 kg- Vitesse maximum drsquoentraicircnement 1ms-1 - Acceacuteleacuteration maximum 1ms-2

Lrsquoassociation avait agrave sa disposition 2 motoreacuteducteurs de types AMAX 26G PLG 26 de chez MDPmotor donc le premier objectif eacutetait de veacuterifier si lrsquoon pouvait se servir de ces moteurs pour reacutepondre aux speacutecifications que lrsquoeacutequipe crsquoeacutetait fixeacute

Nous allons donc vous expliquer la deacutemarche que nous avons suivie

On peut repreacutesenter lrsquoaxe moteur comme ci dessous

Moteur

Reacuteducteur

Palier

Roue

eacutecrasement

Page 10

UV PR Reacutealisation drsquoune base roulanteA04

Tout drsquoabord il faut deacuteterminer la force de reacutesistance au roulement celle-ci va deacutependre essentiellement de deux paramegravetres

- force de frottement essieu palier donneacutee par la relation suivante

rff D

dMgF 22

times

times= micro fmicro Coefficient de frottement essieu palier

rD Diamegravetre de la roue

2d

Rayon de lrsquoessieu

- force drsquoeacutecrasement

re D

fMgF 2timestimes=M Masse du robotf Eacutecrasement (00001 m)

Ce qui nous donne lrsquoexpression de la force de reacutesistance au roulement celle-ci devant ecirctre vaincue par le moteur pour mettre le robot en mouvement

+= fdMg

DF f

rres 2

2 micro

A partir de cette force on peut deacuteterminer le couple reacutesistant permanent agrave vaincre

resr

rp FDC times=2

Pour pouvoir appliquer le principe fondamental de la meacutecanique il nous faut deacuteterminer lrsquoinertie de la charge Afin drsquoobtenir ce paramegravetre nous allons consideacuterer qursquoil y a conservation de lrsquoeacutenergie cineacutetique entre le mouvement de rotation (de la roue) et de la translation (du robot) ce qui nous donne

222

221

21

=rArr=Ω r

ccccDMJMVJ

Si lrsquoon ramegravene cette inertie au moteur cela donne

rcmc

rm

ccmc

rmmccc

kJJJJ

JJ

ηη

η

121

21

2

2

2

2

times=hArrΩ

Ωtimes=

Ω=Ωk Rapport de reacuteduction

rη Rendement du reacuteducteurcJ Inertie de la charge

mcJ Inertie rameneacutee au moteur

Page 11

Maintenant nous avons tous les eacuteleacutements pour eacutecrire le principe fondamental de la meacutecanique

mrpmmmtot CCJ minus=γ

Ici compte tenu de notre application pour deacuteterminer le couple moteur neacutecessaire il faut tenir compte du nombre de moteurs

( )[ ]mrpmmcmmoteur

m CJJnb

C 1 ++= γ

Dans lrsquoapplication le nombre de moteurs srsquoeacutelegraveve agrave deux donc si lrsquoon regarde lrsquoexpression du couple moteur pour chaque phase cela donne

- phase drsquoacceacuteleacuteration

mmaccmacc

r

rpa

r

rmaccm

CP

kC

kDMJC

η

ηγ

η

1

122

1

max

2

2

timesΩtimes=

+times

times

+=

- phase de freinage

mmfrmfr

r

rpfr

r

rmfrm

CP

kC

kDMJC

η

ηγ

η

1

122

1

max

2

2

timesΩtimes=

+times

times

+=

- reacutegime permanent

mmpermmperm

r

rppermm

CP

kC

C

η

η1

21

max

timesΩtimes=

=

Maintenant que toutes les relations ont eacuteteacute mises en eacutevidence on peut regarder les reacutesultats que lrsquoon obtient avec le moteur AMAX 26G en gardant agrave lrsquoesprit que pour lapplication on considegravere que les phases drsquoacceacuteleacuteration seront preacutepondeacuterantes crsquoest pourquoi on dimensionnera les moteurs pour les phases drsquoacceacuteleacuterations

Apparemment le moteur aurait pu convenir si le reacuteducteur avait eu un rapport de reacuteduction plus faible En effet le moteur peut deacutelivrer le couple nominal neacutecessaire mais nous ne permet pas drsquoatteindre les vitesses souhaiteacutees Dans un premier temps nous avions revu nos speacutecifications agrave la baisses envisageacute la meilleure faccedilon de commander le moteur de faccedilon agrave ce que lrsquoon deacutemarre toujours en suivant la limite de puissance imposeacutee par le collecteur meacutecanique Ceci nous aurait permis drsquoavoir la meilleure dynamique du moteur La conseacutequence de ce type de fonctionnement aurait eacuteteacute un eacutechauffement excessif et un vieillissement preacutematureacute du moteur Donc les risques de casse auraient eacuteteacute multiplieacutes

Suite agrave un incident durant les phases de tests un des moteurs crsquoest vu endommageacutes crsquoest pourquoi il agrave fallu dimensionner drsquoautres moteursNous avons donc repris nos calculs avec un nouveau rapport de reacuteduction ce qui nous donne les reacutesultats suivants

Nous avons donc rechercheacute un moteur qui aurait pu avoir ses caracteacuteristiques agrave savoir - Couple nominal 34 mNm- Vitesse nominale 3342 trmin- Puissance nominale 16 W- Alimentation 24V- Reacuteducteur 1 14

Ce qui nous donnerait en sortie de reacuteducteur - Couple nominal 033 Nm- Vitesse nominale 239 trmin

Nous avons eu beaucoup de mal agrave trouver un moteur qui reacuteponde agrave ses exigences de maniegravere preacutecise et qui ait des caracteacuteristiques geacuteomeacutetriques compatibles avec les speacutecifications meacutecaniques Ces speacutecifications meacutecaniques eacutetant contraignantes compte tenu de la strateacutegie envisageacutee

Crsquoest pourquoi nous avons seacutelectionneacute un moteur un peu surdimensionneacute pour notre application toutefois cela va dans le bon sens comme nous sommes obligeacutes de mettre un renvoi drsquoangle ce qui va augmenter les pertes et lrsquoinertie Donc ce surdimensionnement devrait palier aux impreacutevus et combler nos neacutegligences

c Choix possibles

Gracircce aux informations qui preacutecegravedent on a pu choisir 3 Reacutefeacuterences bull Un motoreacuteducteur de chez MDP-Motor avec une vitesse en charge de 309 trmin-1 et

un couple de 057 Nm reacutefeacuterence AMAX32GHPPLG42S prix unitaire TTC 310 euro (avec -20 en tant que participant agrave la Coupe) disponibles sous 12 semaines longueur sans arbre de 142 mm

bull Un motoreacuteducteur de chez MDP-Motor avec une vitesse en charge de 559 trmin-1 et un couple de 060 Nm reacutefeacuterence RE035GPLG52 prix unitaire TTC 337 euro (avec -20 en tant que participant agrave la Coupe) disponibles de suite longueur sans arbre de 144 mm

bull Un motoreacuteducteur de chez Faulhaber avec une puissance de 45 W reacutefeacuterences moteur 2657 reacuteducteur seacuterie 26 Rr =14) prix unitaire TTC 507 euro disponibles de suite longueur sans arbre 125 mm

Voir en annexes pour les caracteacuteristiques de ces reacutefeacuterencesAux vues des longueurs obtenues il nous est rapidement apparu qursquoune transmission

directe Motoreacuteducteur Roue nrsquoeacutetait pas envisageable du fait drsquoune longueur totale minimum de (125 + 30) 2 = 310 mm avec 125 la longueur drsquoun motoreacuteducteur 30 la largeur estimeacutee drsquoune roue Nous avons donc opteacute pour une solution agrave renvoi drsquoangle

d Choix deacutefinitif

Gracircce aux caracteacuteristiques preacuteceacutedentes nous avons choisi les RE035GPLG52 du fait de leurs disponibiliteacute caracteacuteristiques et prix En ce qui concerne la transmission par renvoi drsquoangle nous avons opteacute pour des systegravemes deacutejagrave tout fait qui permettent une plus grande preacutecision un meilleur rendement et un meilleur rapport qualiteacute prix que les montages artisanaux Voici la reacutefeacuterence que nous avons retenue

bull Reacutefeacuterence 748-437 chez Radiospares ou B332312 chez HPCeurope avec les caracteacuteristiques suivantes Rr = 1 C max = 068 Nm V max = 1500 trmin-1 η = 094 prix RS 5750 euro piegravece et prix HPC 52 euro piegravece (avec -10 en tant que participant agrave la Coupe) (Voir les autres caracteacuteristiques en annexes)Pour des raisons de disponibiliteacute nous avons commandeacute ces 2 piegraveces chez

Radiospares En ce qui concerne la liaison entre lrsquoarbre moteur et lrsquoarbre de la transmission nous

avons deacutecideacute drsquousiner un accouplement rigide dont les plans se trouvent en annexes Du coteacute moteur le blocage en rotation est assureacute par une vis de pression qui se trouve dans la gorge preacutevue initialement pour la clavette De lrsquoautre coteacute nous avons usineacute un meacuteplat sur lrsquoarbre du reacuteducteur meacuteplat sur lequel vient appuyer une autre vis de pression

3 Les supports des moteurs

A lrsquoorigine nous avions penseacute mettre les moteurs et les roues coaxiaux nous avions donc imagineacute un systegraveme de bride qui permettrait de bloquer le moteur selon 2 axes de translation et 2 axes de rotation gracircce agrave 2 vis de serrage associeacutee agrave une eacutequerre qui permettait le blocage selon le dernier axe de translation et de rotation Le tout eacutetait fixeacute sur une plaque de fond qui constituerait la base du robot

Voici donc a quoi ressembler cette bride (pour un moteur)

Bride de maintien pour moteur de faible longueur

Bride monteacutee sur la plaque de fond avec un moteur

Ensuite lorsque nous sommes passeacutes agrave la solution avec renvoi drsquoangle nous avons deacutecideacute drsquousiner une piegravece certes complexe mais qui proposait une universaliteacute notamment au niveau des diffeacuterentes positions des moteurs (verticale et horizontale) aspect qui satisfait pleinement au cahier des charges Cette piegravece que par la suite nous appellerons Bloc Moteur doit permettre la mise et le maintien en position du motoreacuteducteur la mise et le maintien en position du reacuteducteur la fixation de lrsquoensemble au sein du robot notamment sur la plaque de fond

Apregraves une petite eacutetude nous sommes arriveacutes agrave une piegravece de ce type

Bloc moteur pour la solution avec renvoi dangle

Cette nouvelle piegravece agrave de nombreux avantages

bull Elle nous permet de pouvoir incorporer le renvoi drsquoangle bull De maintenir les piegraveces entre-elles et de limiter les efforts directs sur les

diffeacuterents eacuteleacutementsbull Drsquoecirctre installeacute agrave lrsquohorizontale ou agrave la verticale

Effectivement lors de la conception du bloc moteur nous avons penseacute aux anneacutees futures et nous avons donc preacutevu un montage des moteurs agrave la verticale ou agrave lrsquohorizontale

En position verticale

En position horizontale

4 Les roues

Comme vu lors de la veille technologique les chenilles ont quasiment disparu de la compeacutetition Ceci est ducirc au fait que cette technologie est difficile agrave mettre en œuvre et que les regraveglements proposent des aires de jeux totalement planes

Or cette anneacutee un fosseacute fait son apparition dans le regraveglement Ce fosseacute de 36 mm de profondeur vient seacuteparer deux aires de jeu Une neacutecessiteacute de traverser le fosseacute apparaicirct donc pour aller renverser les quilles de lrsquoadversaire

Deux solutions sont alors possibles bull Traverser sur le pont aleacuteatoirebull Traverser le fosseacute

Si nous choisissons de traverser par le pont lrsquoideacutee de garder notre systegraveme de roues est correcte par contre un systegraveme agrave chenille permettrait de passer par le fosseacute

Apregraves reacuteflexion de lrsquoeacutequipe PR et des membres de la Coupe E=M6 la solution de traverser par le pont est retenue Ce qui nous a conduit tout droit vers la solution agrave roues

Les roues utiliseacutees sont des roues de roller de diamegravetre 80mm et drsquoune largeur de 22mm Ces roues sont relieacutees agrave lrsquoarbre drsquoun renvoi drsquoangle par lrsquointermeacutediaire drsquoun accouplement en aluminium

5 La base

Pour la base du robot il nous a parut indispensable de dimensionner la plaque de fond en eacutepaisseur De plus afin de maintenir la solution de modulariteacute de lrsquoensemble moteurs ndash roues nous avons deacutecideacute de fixer les deux supports moteurs sur un platine qui sera elle-mecircme fixeacutee agrave la plaque de fond du robot

Premiegraverement nous avons effectueacute un dimensionnement succinct de la platine

a Reacuteaction drsquoappui

0=sum Fx OK

0=sum Fy qLRbRaorRbRaqL210 =+=++minus

qLRa21=

AB = 027 m = L

P = mg P = 15 x 10 = 150 N

Q = 150 N270 mm soit q = 555 Nm

Bille folle

Accouplement

Bloc moteur

Renvoi drsquoangle

Platine

Base du robot

Motoreacuteducteur

Roue

b Moment de flexion

0 =sum= cMMf

02

sup2 =minus+ RaxqxMf

sup221

21 qxqLxMf minus=

c Flegraveche

)( xMfEIY =

sup221

21 qxqLxEIY minus=

161sup2

41 3 CqxqLxEIY +minus=

21241

121 43 CxCqxqLxEIY ++minus=

d Conditions aux limites

Y (x=0) = 0 C2 = 0

Y (x=L) = 0 012412

44

=+minus LCqLqL

241

4qLLC =

241

3qLC =

On obtient donc

xqLqxqLxEIY 343

241

241

121 +minus=

De mecircme

+minus=

242412

343 xLxLxEIqY

On sait que bull E = 210 000 10^6bull Y = 1 10^-3 mbull Q = 555 Nmbull L = 027 m

bull12

3bhI = b = 006 m

+

minus

=24

22416

128

343 LL

LLL

EYqI

36

4

0010102100000601052155512timestimes

timestimes=minus

h

Et enfin on trouve h lrsquoeacutepaisseur de la platine h= 43 mm

Apregraves reacuteflexion nous nous sommes rendu compte que ce calcul nrsquoeacutetait pas rigoureux car nous avons consideacutereacute la theacuteorie des poutres or dans notre cas nous ne pouvons satisfaire cette theacuteorie (Longueur de la section = 10 x la largeur de la section)

Il nous faut donc utiliser un modegravele plus preacutecis crsquoest pourquoi nous avons deacutecideacute de faire un calcul par eacuteleacutements finis sous Ideacuteas Ainsi nous trouvons une eacutepaisseur h = 32 mm

Il nous faut donc une platine de plus de 3 mm Etant donneacute que la platine sera solidairement fixeacutee agrave la base du robot nous avons deacutecideacute de prendre une eacutepaisseur de platine de 2 mm et une eacutepaisseur de base de robot de 2 mm Nous obtenons donc une eacutepaisseur totale de 4 mm Ainsi nous devrions avoir sous une charge de 15 kg moins drsquoun millimegravetre de flexion de la base du robot

6 Reacutesultats

Assemblage en position horizontale

Vue eacuteclateacutee en position verticale

Photo de lrsquoassemblage roues ndash blocs moteurs ndash moteurs ndash platine

Partie C Lrsquoeacutelectronique20 Les batteries

Afin de pouvoir choisir les batteries approprieacutees agrave notre application nous devons dans un premier temps faire une estimation de la consommation drsquoeacutenergie totale avec les pointes de courant envisageacutees dans notre robotIl est agrave noter que nous ne connaissons pas encore en deacutetail tous les eacuteleacutements annexes qui seront implanteacutes dans le robot comme par exemple les capteurs et actionneurs diverses qui seront choisis en fonction des objectifs technologiques atteints ou non de lrsquoassociation et de la strateacutegie finaleDans le but de pouvoir utiliser agrave nouveau dans lrsquoavenir notre base roulante nous avons choisi de surestimer les besoins en eacutenergie de sorte agrave ne pas ecirctre pris au deacutepourvu

La consommation pourrait se deacutecomposer ainsi - 2 moteurs de 24V sous 21A soit 1008 Watts pendant 100 du temps- 3 actionneurs de 21 Watts chacun soit 63 Watts pendant 50 du temps- 3A pour lrsquoeacutelectronique sous 5V soit 15 Watts pendant 100 du temps (Asservissement carte de commandes capteurs)

Ce qui nous fait au total une consommation maximale ~180 WattsLa consommation permanente devrait ecirctre ~147 Watts permanents il faut donc que les batteries puissent deacutebiter un courant de ~6 A sous 24 V durant le fonctionnement du robot

Apregraves une longue recherche on a pu reacutealiser le tableau comparatif des batteries suivant

typeDensiteacute

deacutenergie (WhKg)

Densiteacute deacutenergie (WhL)

auto-deacutecharge (mois)

voltage dune cellule (V)

temps de charge rapide

plomb 35 111 5 agrave 10 2 8h agrave 15h

NiCd (Nickel Cadnium) 50 94 10 agrave 20 12 1h30min

NiMH (Nickel Metal Hydride) 80 135 20 agrave 30 13 2h agrave 4h

Lithium Ion 100 196 5 agrave 10 36 2h agrave 4h

Lithium polymer 150 200 5 agrave 10 36 2h agrave 4h

AlKaline rechargeable 80 15 2h agrave 3h

type

cycle de charge-deacutecharge avant

que capaciteacute passe de 100 agrave

80

Courant max Courant max pic effet meacutemoire estimation

(euroWh) prixcycles

plomb 200 agrave 300 02C 05C M 0895 0003

NiCd (Nickel Cadnium) 1500 1C 20C H 416 0003

NiMH (Nickel Metal Hydride) 300 agrave 500 05C 5C L 2 0004

Lithium Ion 500 agrave 1000 1C 2C L 8 0008

Lithium polymer 300 agrave 500 1C 2C agrave 5C L 32 0006

AlKaline rechargeable 50 02C 05C H 178 0036

Effet meacutemoire L (Low) M (Medium) H (High)Courant max C signifie capaciteacute par exemple une batterie qui peut deacutelivrer un courant max de 1C de 4Ah pourra donc deacutelivrer 4A au maximum sans risque de deacuteteacuterioration

Nous nous sommes inteacuteresseacutes au courant maximum et au temps de charge rapide pour notre choix de batteriesLe type de batterie qui semble le plus approprieacute pour nous est le type Nickel-Cadnium parfaitement adapteacute au pic drsquoappel de courant que provoquent des moteurs pouvant supporter des charges rapides en 1h30min seulement afin de devoir preacutevoir trop de jeux de batteries diffeacuterents

Les batteries LI-Ion ou LI-Polymer preacutesentent une densiteacute eacutenergeacutetique tregraves inteacuteressante mais leur prix est beaucoup plus eacuteleveacute agrave lrsquoachat et de plus dans notre application roulant sur un sol peu accidenteacute la masse pouvant ecirctre transporteacutee est suffisante pour le type NiCd

Les batteries LI-Ion ou LI-Polymer sont plus adapteacutees agrave lrsquoaeacuteromodeacutelisme ou au petit appareil eacutelectroniqueQuant aux batteries au plomb qui sont vraiment bon marcheacute le courant maximum supporteacute est trop faible est supposerait drsquoavoir une forte capaciteacute

Nous voulons avoir une autonomie de 30 minutes il nous faut donc une eacutenergie de 735 WhOr sous 24 V les batteries doivent avoir une capaciteacute de ~3 AhComme les batteries NiCd peuvent deacutebiter un courant maximum de 1C (une fois leur capaciteacute) nous devons donc prendre des batteries de 6Ah sous 24 V ce qui nous donnera une autonomie de 1 heure

Il faudra donc soit acheter un bloc accumulateur NiCd de 24 V 6 Ah srsquoil existe dans le commerce soit le reacutealiser nous mecircme en assemblant diffeacuterents eacuteleacutements

Rappelons que lrsquoassociation en seacuterie permet drsquoadditionner les tensions des eacuteleacutements associeacutes et que lrsquoassociation en parallegravele permet drsquoadditionner les courants deacutebiteacutes

Par exemple des eacuteleacutements de 12 V chacun pour 3 Ah srsquoassocieraient ainsi

Soit deux seacuteries de 20 eacuteleacutements eacutequivalentes agrave 24 V et faisant une capaciteacute de 3 Ah chacune

Il est possible de reacutepartir les accumulateurs en diffeacuterents paquets pour faciliter le rangement dans le robot ou reacutepartir la masse ou eacuteventuellement trouver des packs dans le commerce

Dans le cas de lrsquoUV PR le choix des batteries reste pour le moment sur les NiCd mais pour les essais pratiques on utilisera des batteries au plomb que lrsquoon possegravede deacutejagrave drsquoautant plus que les essais sont reacutealiseacutes avec les moteurs de propulsion et lrsquoasservissement seul ce qui

neacutecessite un deacutebit de courant de 24105 = 4375 A sur 2 batteries soit asymp2187 A

Comme les batteries au plomb peuvent deacutebiter 02C il nous en faudrait des de asymp 109 Ah

Or les essais de la base roulante ne seront que de courtes dureacutees et lrsquoon se contentera donc drsquoutiliser des batteries de 6 Ah pour des raisons de volume mecircme si elles ne sont pas vraiment bien dimensionneacutees

21 La commande des moteurs

Dans un premier temps nous verrons un bref reacutecapitulatif des cartes et modules drsquoasservissement du commerce

Pour la commande les moteurs plusieurs solutions ont eacuteteacute envisageacutees - Un asservissement lsquotout faitrsquo analogique modules laquo Escap raquo- Une solution lsquoartisanalersquo carte avec asservissement numeacuterique- Un asservissement lsquotout faitrsquo numeacuterique circuits laquo LM629 raquo

a Comparatifs des modules drsquoasservissement et calcul des correcteurs

Veille technologique sur les systegravemes drsquoasservissement utiliseacutes par les diffeacuterentes eacutecoles de la coupe E= M6

Le but de cette partie est drsquoeacutetudier les principales techniques drsquoasservissement utiliseacutees par les eacutecoles de la Coupe E=M6 Ce document est loin drsquoecirctre exhaustif et servira de base agrave compleacuteter et actualiser pour les semestres et eacutequipes prochaines

Apregraves une eacutetude sur plus drsquoune trentaine drsquoeacutecoles il ressort trois formes drsquoasservissement la plus utiliseacutee agrave 85 est du type PID en majoriteacute reacuteduit au PI ensuite viennent les microcontrocircleurs PIC associeacutes au PID et les modules AVR nous allons par la suite deacutetailler ces trois solutions Il existe eacutegalement des systegravemes de controcircle dits agrave retour drsquoeacutetat jamais utiliseacutes jusqursquoagrave preacutesent pour la Coupe crsquoest pourquoi nous ne deacutevelopperons pas son approche

3 Systegraveme PID

httpwwwancrorgfichtechactionpidindexhtm

a Principe

Pour pouvoir tester un asservissement il faut dabord reacutealiser une plate-forme de deacuteveloppement le plus geacuteneacuteralement du type suivant Mais pour commencer un brin de theacuteorie illustreacute par des exemples Le scheacutema de principe est repreacutesenteacute ci-dessous

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

Nous avons bien un scheacutema en boucle fermeacutee puisque la sortie du systegraveme est reacuteinjecteacutee dans lentreacutee Les trois blocs bleus correspondent chacun agrave une fonctionnaliteacute Ki est le coefficient inteacutegral Kp le coefficient proportionnel et Kd le coefficient deacuteriveacute Chacun de ces coefficients a une fonctionnaliteacute bien preacutecise Commenccedilons par le plus simple le proportionnel

b Asservissement P

Lasservissement proportionnel est essentiel au fonctionnement du PID Il permet essentiellement de donner de la puissance au moteur Voici quelques reacutesultats dexpeacuterimentations avec Ki=0 et Kd=0

La courbe noire repreacutesente la consigne que lon deacutesire atteindre (Ud) cest un eacutechelon de valeur 32 La courbe bleue repreacutesente la vitesse reacuteelle du systegraveme (Y) Comme vous pouvez le constater plus Kp est grand plus le systegraveme converge vite vers sa valeur finale Mais en contrepartie pour des valeurs de Kp trop grandes le systegraveme oscille Mais lagrave nest pas notre plus gros problegraveme en effet sur ces courbes on voit nettement que la vitesse du moteur natteint jamais la vitesse deacutesireacutee Cest ce que lon appelle lerreur statique elle correspond agrave la diffeacuterence entre la vitesse reacuteelle et la vitesse deacutesireacutee en reacutegime eacutetablie (une fois que le systegraveme sest stabiliseacute) Pour compenser cette erreur statique on rajoute le terme inteacutegral

c Asservissement PI

Le correcteur inteacutegral sert principalement agrave supprimer lerreur statique Lideacutee principale est de charger ou inteacutegrer lerreur depuis le deacutebut et dajouter cette erreur agrave la consigne jusquagrave ce quelle devienne nulle Lorsque cette erreur est nulle le terme inteacutegral se stabilise et il compense parfaitement lerreur entre la consigne et la vitesse reacuteelle Deacutemonstration en image

On voit cette fois-ci que le terme inteacutegral a bien fonctionneacute et que lerreur statique est nulle On constate aussi que plus le gain Ki est grand plus le systegraveme converge vite En revanche plus Ki est grand plus le systegraveme oscille et plus le deacutepassement est grand Sur des asservissements en position le terme deacuteriveacute permet de diminuer le deacutepassement et les oscillations Nous allons voir que dans notre cas nous avons quelques problegravemes

d Asservissement PID ou agrave avance de phase

On a donc rajouteacute le terme deacuteriveacute comme tout bon livre dautomatique le preacuteconise et voici les reacutesultats

Cette fois ci jai choisi de repreacutesenter la tension appliqueacutee au moteur (U) le problegraveme est bien plus flagrant ici Vous voyez que lorsque lon ajoute le terme deacuteriveacute la commande est extrecircmement bruiteacutee En reacutealiteacute on somme agrave la commande la deacuteriveacutee de la vitesse reacuteelle que lon multiplie par un gain Kd La deacuteriveacutee dune vitesse est une acceacuteleacuteration cela signifie que lon amplifie tous les bruits dacceacuteleacuteration et en plus on les multiplient par un gain Kd Donc rajoute du bruit amplifieacute dans la commande Alors pourquoi mettent t-ils ce terme deacuteriveacutee dans les livres Simplement parce que ce bruit est typique des asservissement en vitesse Sur des asservissements en position ce problegraveme est moins freacutequent car la deacuteriveacutee de la position est la vitesse

Ici le problegraveme eacutetait visible parce que nous avons reacutealiseacute toutes ces courbes sur un systegraveme reacuteel Si nous avions simuleacute ces reacutesultats lacceacuteleacuteration naurait pas eacuteteacute bruiteacutee et les courbes auraient eacuteteacute parfaites Pour impleacutementer ce PID sur notre robot il a fallu programmer en numeacuterique une deacuteriveacutee et une inteacutegrale

e PID numeacuterique et reacuteglage

Notre premier problegraveme est de programmer le terme inteacutegral Il existe une meacutethode qui consiste agrave estimer la surface entre deux eacutechantillons mais dans notre cas nous avons des problegravemes dus aux bruits et agrave la freacutequence deacutechantillonnage Alors il faut sommer toutes les erreurs depuis de deacutebut

Notre second problegraveme est de programmer le terme deacuteriveacute La meacutethode ici est de calculer la pente entre deux eacutechantillons de e Theacuteoriquement cela revient agrave faire le calcul suivant

Avec la peacuteriode deacutechantillonnage Pour faire un asservissement numeacuterique il faut impeacuterativement avoir une peacuteriode fixe Pour gagner du temps de calcul geacuteneacuteralement on inteacutegre directement dans le gain Kd

Voici un lalgorithme exemple

Ti = 0 Initialise le terme inteacutegral

for ( i=1 i lt= Nb_cycles i++ )

Init_timers (1) Initialise le timer agrave notre peacuteriode 1 ms

Y = Codeur () Stoque la valeur du codeur dans Y Rst_codeur () Remet le codeur agrave zeacutero Ud = Consigne () Mise agrave jour de la consigne e_old=e Stoque e(t-1) e = Ud - Y Calcul de lerreur Ti = Ti + e Calcul de linteacutegral Calcul du PID U = Kp e Terme proportionnel

+ Ki Ti Terme inteacutegral + Kd ( e - e_old ) Terme deacuteriveacute Moteur (U) On applique la consigne

while ( end_timer() ) On attend la fin de la peacuteriode

Pour le reacuteglage des gains Kp Ki et Kd il existe diffeacuterentes meacutethodes Ici nous lavons fait de maniegravere empirique et le reacutesultats est plutocirct bon Linconveacutenient de ces meacutethodes est quelles demandent un modegravele du systegraveme ce qui est geacuteneacuteralement dur agrave produire Il existe

aussi des composants programmables qui permettent de faire directement lasservissement numeacuterique (HCTL 1100 LM629) Ils sont exactement baseacutes sur la meacutethode preacutesenteacutee ici

Pour ce qui est du reacuteglage des correcteurs lrsquooptimal est drsquoutiliser la meacutethode de lrsquooptimum dissymeacutetrique une fois que lrsquoon agrave reacutealiseacute le modegravele du systegraveme La plus part des eacutecoles ne reacutealisent pas ce modegravele et ce limite donc agrave une correction empirique en reacutealisant des tests ou en utilisant la meacutethode Ziegler-Nichols agrave partir de la reacuteponse agrave un eacutechelon de tension

Par la suite nous rappellerons les meacutethodes de Ziegler-Nichols et de lrsquooptimum dissymeacutetrique

f Les meacutethodes de Ziegler-Nichols

Ces meacutethodes fournissent des reacuteglages pour des correcteurs de type PID (pouvant ne comporter quune action Proportionnelle une action Proportionnelle et une action Inteacutegrale ou les 3 actions simultaneacutement) dont la structure est la suivante

bull MEacuteTHODE DE ZIEGLER NICHOLS TEMPORELLE

Elle est adapteacutee aux systegravemes stables en boucle ouverte qui ont une reacuteponse apeacuteriodique La reacuteponse agrave un eacutechelon unitaire du systegraveme physique doit ecirctre enregistreacutee Diffeacuterentes caracteacuteristiques de la reacuteponse obtenue sont mesureacutees

Le modegravele approcheacute utiliseacutee par Ziegler Nichols comporte une constante de temps et un retard pur ou bien un retard pur et un inteacutegrateur

Si le systegraveme physique comporte un inteacutegrateur les mesures de a et de L demeurent disponibles sur le deacutebut de la reacuteponse

Les reacuteglages suggeacutereacutes par la meacutethode temporelle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 1a - -correcteur PI 09a 3L -

correcteur PID 12a 2L L2Concernant le raffinement des reacuteglages augmenter Kp ou diminuer Ti augment les

oscillations de la sortie

bull MEacuteTHODE DE ZIEGLER NICHOLS FREacuteQUENTIELLE

Cette meacutethode convient particuliegraverement bien aux systegravemes instables en boucle ouverte pour lesquels la meacutethode temporelle nest pas envisageable Lexpeacuterimentation se fait sur le systegraveme boucleacute avec un simple gain proportionnel qui doit ecirctre stable Le principe est de modifier la valeur du gain par essai-erreur jusquagrave atteindre la limite de stabiliteacute (pheacutenomegravene de pompage) Il reste agrave relever le gain limite K0 obtenu et agrave mesurer la peacuteriode T0 des oscillations de la reacuteponse obtenue

Les reacuteglages suggeacutereacutes par la meacutethode freacutequentielle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 05 K0 - -correcteur PI 045 K0 08 T0 -

correcteur PID 06 K0 05 T0 0125 T0

A la page Internet suivante vous trouverez un simulateur de cette meacutethode

httpwww-hadocensieginpgfrhadocateliersreglageEmpCorrReglEmpCorrDroithtml

g Meacutethode de lrsquooptimum dyssimeacutetique (voir poly MC06 Chap 5 et 8)

Cette meacutethode srsquoapplique une fois le modegravele reacutealiseacute et mis sous la forme drsquoun second ordre

et on obtient le correcteur PI

pour une surtension deacutesireacutee QdB

Q = 10^(QdB20)λ= radic(Qsup2(Qsup2-1))Δφ = arcos (1 λ)α= ((1+sin(Δφ))cos(Δφ))sup2ωN= ωQαω0= ωQradicαKP= ω0 λ KQ

4 Les microcontrocircleurs

a Avant propos

Cette fiche se veut ecirctre sous la forme dun projet Un projet non termineacute ougrave chacun peut apporter sa contribution (ameacuteliorations adaptations corrections etc)De ce fait ces pages sont ameneacutees agrave eacutevoluer et vous-mecircme pourrez participer agrave leur eacutevolution

Pourquoi avoir choisit un tel mode de travail Tout simplement parce que le sujet est vaste et que des variations sont possibles suivant lutilisation quen feront les diffeacuterentes personnes

Le but de ce projet est de reacutealiser une double asservissement de vitesse (type PID) de deux moteurs sur un seul PIC (type 16F877) Lutiliteacute majeure eacutetant de faire rouler un robot bien droit et agrave la bonne vitesse A quoi ccedila sert plus preacuteciseacutement

Avec un seul PIC ce projet permet aux roboticiens amateurs et chevronneacutes de reacutealiser facilement leur asservissement de vitesse de moteurs agrave courant continu (en geacuteneacuteral les moteurs de propulsions de leur robot mais ccedila peut ecirctre bien sucircr dautres moteurs) La commande de lasservissement pourra se faire agrave terme en liaison seacuterie (deacutejagrave fait) I2C ou par bus ISA

b Avantages

Il existe bien sucircr dautres systegravemes qui gegraverent un asservissement de vitesses Des systegravemes professionnels existent comme les LM629 Ils ont linconveacutenient decirctre cher (et ce pour un seul moteur) et relativement complexes

Pourquoi chercher un fusil pour chasser des moustiques Le double asservissement sur PIC vous coucircte le prix dun PIC soit environ 15Euro pour un 16F877 actuellement et ce pour 2 moteurs Ce double asservissement se veut relativement simple De plus vous pouvez en modifier le programme et ladapter agrave vos besoins

c Inconveacutenients

Les personnes qui auront les moyens preacutefeacutererons opter pour un systegraveme professionnel certainement pour des raisons de fiabiliteacute mais cest agrave leurs risques et peacuterils -)La puissance du PIC eacutetant limiteacutee il ne peut pas reacutealiser des PID trop rapides ou trop complexes Il y a en particulier une limitation sur le nombre dimpulsions par seconde quil est capable de geacuterer

Le langage utiliseacute eacutetant le C il faut une licence du logiciel pour pouvoir modifier et recompiler le code source c Mais le projet se veut geacuteneacuterique Une version donneacutee pourra ecirctre utiliseacute sans recompilation en respectant quelques contraintes

d Asservissement

En fait on pourrait imaginer quil suffirait denvoyer au moteur une puissance constante pour quil tourne tout le temps agrave la mecircme vitesse Ce nest pas vrai du tout Tout dabord 2 moteurs dune mecircme seacuterie nauront pas forceacutement le mecircme comportement Ensuite parce que les niveaux de tension ou dautre diffeacuterences eacutelectriques peuvent jouer Enfin parce que des influences exteacuterieures (obstacles frein meacutecanique du robot) peuvent jouer

Du coup il est tregraves difficile de faire aller un moteur agrave la vitesse voulue Parfois ce nest pas gecircnant mais ccedila peut lecirctre Un exemple classique est le robot avec 2 roues motrices type char une configuration qui est tregraves courante Mais pour que ce robot aille droit il faut que les 2 moteurs aillent exactement agrave la mecircme vitesse

La solution est de faire un asservissement Cest a dire moduler dynamiquement la puissance envoyeacute aux moteurs suivant leur vitesse mesureacutee afin dadapter celle-ci agrave ce qui est deacutesireacuteeCela implique un eacuteleacutement tregraves important pour asservir il faut un capteur de vitesse du moteur En geacuteneacuteral il sagit dun compte-tour qui enverra N impulsions (ou pas) par tour de moteur Ensuite un programme va calculer en fonction de la vitesse mesureacutee du moteur la puissance agrave utiliser

Les asservissements sont constamment en train de chercher leacutequilibre Il faut bien comprendre quils mettent un certain temps agrave latteindre et ce dernier peut aussi ecirctre instable si lasservissement est mal reacutegleacute

Lasservissement quon va utiliser ici est un classique PIDou plus preacuteciseacutement un PI car pour des raisons de vitesses de traitement la composante deacuteriveacutee est laisseacutee de coteacute (mais rien de difficile agrave rajouter)

Le PID ou Proportionnel Inteacutegrale Deacuteriveacute est une meacutethode de calcul dasservissement

Soit Kp Ki et Kd les coefficients proportionnels inteacutegrale et deacuteriveacuteSoit e lerreur Vitesse mesureacutee moins vitesse demandeacuteeSoit Ti le terme inteacutegral dabord initialiseacute agrave 0

Consigne a appliquer (PWM) = Kp e + (1Ki) (Ti += e) + Kd (e - e(t-1))

On pourrait dire des pages et des pages sur le PID et ce nest pas mon but ici Merci de vous reporter au lien ci-dessous

Pour plus de deacutetails sur le PID la page de lANCR httpwwwancrorgfichtechactionpidindexhtmChez les Fribottes la Simulation de Jean-Claude httpwwwwikifreefrWiKiFriindexphpSimulateur20de20PID

e Le pic

Le PIC est un petit microcontrocircleur assez bon marche et simple a programmer comme a utiliser

La aussi je vais pas rentrer dans les deacutetails vous pouvez vous reporter agrave la bdtech du site Fribotte et en particulier aux cours de Bigonoff

Le PIC est ici programmeacute en C voir la page Fribotte ici Lutilisation du langage C permet dalleacuteger consideacuterablement le deacuteveloppement dune application compliqueacutee

2 Module AVR

httpwwwenseirbfr~matzfravrphp

Tregraves peu de renseignement sur ce module sinon ces informations drsquoun eacutetudiant de lrsquoEnseirb

Depuis plusieurs anneacutees je participe agrave la coupe de robotique E=M6 dont lobjectif pour chaque eacutequipe est de fabriquer un robot autonome devant se conformer agrave un regraveglement Pour plus dinfos vous pouvez vous rendre sur le site de mon eacutequipe Microb Technology ou bien sur le site de Planegravete Sciences lorganisme beacuteneacutevole qui organise cette compeacutetition

Jai deacutecouvert en 2001 les microcontrocircleurs Atmel AVR auxquels je me suis beaucoup attacheacute dune part parce quils sont assez performants pour des microcontrocircleurs 8 bits mais aussi et surtout car le fameux compilateur libre GCC est capable de compiler du code C pour ces petites becirctes Il existe de surcroicirct plusieurs outils libres permettant de les programmer de les simuler etc

Le but de ce projet est donc de deacutevelopper des modules servant dinterface geacuteneacuterique avec le hardware du microcontrocircleur quel que soit la version (par exemple les UART inclus dans les AVR AtMega sont diffeacuterents de ceux preacutesents dans les petits AVR) et de deacutevelopper des modules utiles pour certaines utilisations usuelles et pas seulement pour la coupe E=M6 (codage de hamming asservissement chiffrement etc)

Vous pouvez contacter leacutequipe de deacuteveloppement agrave avr-devdroids-corporg Pour le moment aucune release na eacuteteacute faite mais le travail est deacutejagrave bien avanceacute Chaque soir un screenshot du CVS est reacutealiseacute Il peut ne pas compiler mais normalement ccedila devrait fonctionner Voici le lien

3 Modules drsquoasservissement analogique laquo Escap raquo

Nous avons essayeacute de reacutecupeacuterer les cartes de commande Escap pour moteurs Escap qui avaient eacuteteacute utiliseacutees en 96 et 98 avec succegraves

Nous les avons monteacutes sur une base roulante qui pesait en tout 74 kgVoici grosso-modo leurs avantages et leurs inconveacutenients (pour les notices techniques voir le rapport 96 ou 98)

a Avantages

Cette carte inclut directement un asservissement avec correcteur PI la commande de puissance les ponts en H

Elle est tregraves facile agrave utiliser Elle est speacutecialement conccedilue pour les moteurs Escap que nous avons donc

parfaitement adapteacutee

b Inconveacutenients

Les moteurs ne fonctionnent correctement que sous 24v Les cartes et les moteurs semblent assez gourment Les cartes nantis de gros radiateurs sont relativement encombrantes Les tachymegravetres monteacutes sur les moteurs ne donnent pas une indication de position

mais de vitesse (qui plus est en analogique)

Nous avons preacutefeacutereacute refaire la partie commande car celle de 1996 souffrait de quelques deacutefauts (cf rapport 1996)

La conversion numeacuterique analogique

Pour reacutealiser la conversion numeacuterique analogique nous avons choisit un pont agrave reacutesistance R-2R

Nous pouvons consideacuterer que chaque bit est relieacute agrave un geacuteneacuterateur ideacuteal de tension (qui deacutelivre 0v ou 5v) Par conseacutequent la reacutesistance eacutequivalente quelque soit lrsquoeacutetat des bits et quelques soit le nombre de bits vue entre la sortie et la masse sera eacutegal agrave R

La tension Vs en fonction de lrsquoeacutetat des bits sera

Ce type de CAN eacutetant tregraves classique nous nrsquoindiquerons pas les deacutemonstrations toutefois vous pourrez les trouver tregraves facilement sur Internet ou sur le Cd-rom drsquoannexes joint au dossier

Le montage de Thevenin eacutequivalent est donc

Nous avons jugeacute qursquoune discreacutetisation sur 8 bits eacutetait un peu superflu crsquoest pourquoi nous nous contenterons de 4 bits (ce qui repreacutesentent quand mecircme 16 niveaux de vitesse)

bull Lrsquoadaptation du niveau de tension

Nous avons agrave la sortie du CAN une tension qui srsquoeacutetend de 0 agrave 5v or la commande des cartes Escap ce fait entre -5v et +5v

On peut voir cette adaptation comme lrsquoajout drsquoun offset de -25v et une amplification de gain 2

Voici le montage reacutealisant cette conversion

M1 est un montage suiveur qui lsquorecopiersquo la tension aux bornes de P1 mais sous une impeacutedance constante et eacutegale agrave 4R En 1996 lrsquoeacutequipe avait brancheacute P1 directement sur M3 mais cela a pour inconveacutenient de faire varier agrave la fois lrsquooffset et la penteLe potentiomegravetre P1 permet drsquoajuster lrsquooffset (permet par conseacutequent de reacutegler lrsquoarrecirct complet de moteur) (La valeur theacuteorique de lrsquooffset est 5V (cf formule en M3))

M2 est aussi un montage suiveur Le potentiomegravetre P2 permet drsquoajuster la pente (qui doit avoir un coefficient directeur de 2) Comme M2 est connecteacute au CAN dont la reacutesistance interne est de R P2 doit ecirctre a peut precirct eacutegal agrave R de la sorte la branche aura une reacutesistance eacutequivalente de 2R

M3 Sommateur (Vs = - 2 (Ve + Voffset))

Qursquoelle valeur choisir pour R

Theacuteoriquement on peut choisir nrsquoimporte quelle valeur pour R mais en pratique si R est trop petite une intensiteacute importante serait consommeacutee sans raison et si R est trop grande la forte impeacutedance du montage le rendra tregraves sensible aux parasites (secteur moteurshellip)Ce montage a eacuteteacute testeacute et fonctionne correctement pour R=5k les amplificateurs opeacuterationnels utiliseacutes sont des LM324 mais drsquoautres seraient tout agrave fait envisageables (peu de contraintes de vitesse et de tensions de deacutechets)

4 Conclusion

Nous avons preacutefeacutereacute ne pas utiliser les cartes Escap car les moteurs ne renvoient pas une position sous forme drsquoimpulsion mais une vitesse Etant donneacute que nous avions envisageacute un repeacuterage par odomeacutetrie cela compliquait consideacuterablement la tache

Toutefois il faut savoir que cette solution a eacuteteacute testeacutee et fonctionne tregraves bien (bonne preacutecision bonne dynamique) ainsi dans le cas ougrave le repeacuterage ne se fait pas par odomeacutetrie mais des balises exteacuterieures sachez que cette solution est tregraves pratique agrave utiliser En effet pour imposer une vitesse il suffit au microcontrocircleur drsquoappliquer sur un port un mot binaire correspondant agrave la vitesse voulue hellip et crsquoest tout La carte Escap se charge du reste

5 Carte drsquoasservissement numeacuterique laquo artisanale raquo

La carte reacutealiseacutee baseacutee sur un microcontrocircleur PIC 16F877A srsquoest aveacutereacutee fonctionnelle mais les tests drsquoalgorithmes drsquoasservissement nrsquoont pas eacuteteacute effectueacutesEn effet lrsquoutilisation de cette solution neacutecessite un microcontrocircleur deacutedieacute agrave lrsquoasservissement capable de communiquer via un protocole agrave deacutefinir avec la laquo carte megravere raquo (centralisant les retours des autres capteurs du robot et agissant sur les diffeacuterents actionneurs en fonction de la strateacutegie)Or afin de limiter le nombre de microcontrocircleurs sur le robot et du fait que lrsquoon dispose drsquoun budget suffisant nous avons deacutecideacute drsquoessayer drsquoutiliser des composants speacuteciaux reacutealisant lrsquoasservissement

Le systegraveme se deacutecompose en

- Un microcontrocircleur pour appliquer la PWM asservir et commander- Une carte de puissance pour chaque moteur baseacutee sur un LMD18200- Une carte compteur drsquoimpulsions pour les codeurs

Afin de favoriser lrsquointeractiviteacute et les reacuteglages jrsquoai ajouteacute une carte afficheur LCD avec 6 boutons sur la carte microcontrocircleur

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 10: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

UV PR Reacutealisation drsquoune base roulanteA04

2 Le choix des moteurs

a Technologies

Le regraveglement de la compeacutetition ne laissant pas de reacuteels choix quant agrave la source drsquoeacutenergie utiliseacutee nous nous sommes directement orienteacutes vers des moteurs eacutelectriques Il existe plusieurs familles de moteurs eacutelectriques

bull Les moteurs Brushlessbull Les moteurs agrave Courant Continubull Les moteurs agrave Courant Alternatifbull Les moteurs Pas agrave PasForts de nos expeacuteriences passeacutees les moteurs Pas agrave Pas on eacuteteacute directement mis de

coteacute agrave cause de leur faibles vitesse de rotation et couple En ce qui concerne les moteurs agrave Courant Alternatif leur mise en œuvre est assez compliqueacutee pour des systegravemes embarqueacutes Nous avons donc le choix entre les moteurs Brushless et les moteurs agrave Courant Continu Nous avons opteacute pour les moteurs agrave Courant Continu car ceux-ci sont plus simples agrave controcircler moins coucircteux et mieux connus que les Brushless

b Dimensionnement

Le cahier des charges nous impose les caracteacuteristiques suivantes

- Diamegravetre des roues 8cm- Poids du robot 15 kg- Vitesse maximum drsquoentraicircnement 1ms-1 - Acceacuteleacuteration maximum 1ms-2

Lrsquoassociation avait agrave sa disposition 2 motoreacuteducteurs de types AMAX 26G PLG 26 de chez MDPmotor donc le premier objectif eacutetait de veacuterifier si lrsquoon pouvait se servir de ces moteurs pour reacutepondre aux speacutecifications que lrsquoeacutequipe crsquoeacutetait fixeacute

Nous allons donc vous expliquer la deacutemarche que nous avons suivie

On peut repreacutesenter lrsquoaxe moteur comme ci dessous

Moteur

Reacuteducteur

Palier

Roue

eacutecrasement

Page 10

UV PR Reacutealisation drsquoune base roulanteA04

Tout drsquoabord il faut deacuteterminer la force de reacutesistance au roulement celle-ci va deacutependre essentiellement de deux paramegravetres

- force de frottement essieu palier donneacutee par la relation suivante

rff D

dMgF 22

times

times= micro fmicro Coefficient de frottement essieu palier

rD Diamegravetre de la roue

2d

Rayon de lrsquoessieu

- force drsquoeacutecrasement

re D

fMgF 2timestimes=M Masse du robotf Eacutecrasement (00001 m)

Ce qui nous donne lrsquoexpression de la force de reacutesistance au roulement celle-ci devant ecirctre vaincue par le moteur pour mettre le robot en mouvement

+= fdMg

DF f

rres 2

2 micro

A partir de cette force on peut deacuteterminer le couple reacutesistant permanent agrave vaincre

resr

rp FDC times=2

Pour pouvoir appliquer le principe fondamental de la meacutecanique il nous faut deacuteterminer lrsquoinertie de la charge Afin drsquoobtenir ce paramegravetre nous allons consideacuterer qursquoil y a conservation de lrsquoeacutenergie cineacutetique entre le mouvement de rotation (de la roue) et de la translation (du robot) ce qui nous donne

222

221

21

=rArr=Ω r

ccccDMJMVJ

Si lrsquoon ramegravene cette inertie au moteur cela donne

rcmc

rm

ccmc

rmmccc

kJJJJ

JJ

ηη

η

121

21

2

2

2

2

times=hArrΩ

Ωtimes=

Ω=Ωk Rapport de reacuteduction

rη Rendement du reacuteducteurcJ Inertie de la charge

mcJ Inertie rameneacutee au moteur

Page 11

Maintenant nous avons tous les eacuteleacutements pour eacutecrire le principe fondamental de la meacutecanique

mrpmmmtot CCJ minus=γ

Ici compte tenu de notre application pour deacuteterminer le couple moteur neacutecessaire il faut tenir compte du nombre de moteurs

( )[ ]mrpmmcmmoteur

m CJJnb

C 1 ++= γ

Dans lrsquoapplication le nombre de moteurs srsquoeacutelegraveve agrave deux donc si lrsquoon regarde lrsquoexpression du couple moteur pour chaque phase cela donne

- phase drsquoacceacuteleacuteration

mmaccmacc

r

rpa

r

rmaccm

CP

kC

kDMJC

η

ηγ

η

1

122

1

max

2

2

timesΩtimes=

+times

times

+=

- phase de freinage

mmfrmfr

r

rpfr

r

rmfrm

CP

kC

kDMJC

η

ηγ

η

1

122

1

max

2

2

timesΩtimes=

+times

times

+=

- reacutegime permanent

mmpermmperm

r

rppermm

CP

kC

C

η

η1

21

max

timesΩtimes=

=

Maintenant que toutes les relations ont eacuteteacute mises en eacutevidence on peut regarder les reacutesultats que lrsquoon obtient avec le moteur AMAX 26G en gardant agrave lrsquoesprit que pour lapplication on considegravere que les phases drsquoacceacuteleacuteration seront preacutepondeacuterantes crsquoest pourquoi on dimensionnera les moteurs pour les phases drsquoacceacuteleacuterations

Apparemment le moteur aurait pu convenir si le reacuteducteur avait eu un rapport de reacuteduction plus faible En effet le moteur peut deacutelivrer le couple nominal neacutecessaire mais nous ne permet pas drsquoatteindre les vitesses souhaiteacutees Dans un premier temps nous avions revu nos speacutecifications agrave la baisses envisageacute la meilleure faccedilon de commander le moteur de faccedilon agrave ce que lrsquoon deacutemarre toujours en suivant la limite de puissance imposeacutee par le collecteur meacutecanique Ceci nous aurait permis drsquoavoir la meilleure dynamique du moteur La conseacutequence de ce type de fonctionnement aurait eacuteteacute un eacutechauffement excessif et un vieillissement preacutematureacute du moteur Donc les risques de casse auraient eacuteteacute multiplieacutes

Suite agrave un incident durant les phases de tests un des moteurs crsquoest vu endommageacutes crsquoest pourquoi il agrave fallu dimensionner drsquoautres moteursNous avons donc repris nos calculs avec un nouveau rapport de reacuteduction ce qui nous donne les reacutesultats suivants

Nous avons donc rechercheacute un moteur qui aurait pu avoir ses caracteacuteristiques agrave savoir - Couple nominal 34 mNm- Vitesse nominale 3342 trmin- Puissance nominale 16 W- Alimentation 24V- Reacuteducteur 1 14

Ce qui nous donnerait en sortie de reacuteducteur - Couple nominal 033 Nm- Vitesse nominale 239 trmin

Nous avons eu beaucoup de mal agrave trouver un moteur qui reacuteponde agrave ses exigences de maniegravere preacutecise et qui ait des caracteacuteristiques geacuteomeacutetriques compatibles avec les speacutecifications meacutecaniques Ces speacutecifications meacutecaniques eacutetant contraignantes compte tenu de la strateacutegie envisageacutee

Crsquoest pourquoi nous avons seacutelectionneacute un moteur un peu surdimensionneacute pour notre application toutefois cela va dans le bon sens comme nous sommes obligeacutes de mettre un renvoi drsquoangle ce qui va augmenter les pertes et lrsquoinertie Donc ce surdimensionnement devrait palier aux impreacutevus et combler nos neacutegligences

c Choix possibles

Gracircce aux informations qui preacutecegravedent on a pu choisir 3 Reacutefeacuterences bull Un motoreacuteducteur de chez MDP-Motor avec une vitesse en charge de 309 trmin-1 et

un couple de 057 Nm reacutefeacuterence AMAX32GHPPLG42S prix unitaire TTC 310 euro (avec -20 en tant que participant agrave la Coupe) disponibles sous 12 semaines longueur sans arbre de 142 mm

bull Un motoreacuteducteur de chez MDP-Motor avec une vitesse en charge de 559 trmin-1 et un couple de 060 Nm reacutefeacuterence RE035GPLG52 prix unitaire TTC 337 euro (avec -20 en tant que participant agrave la Coupe) disponibles de suite longueur sans arbre de 144 mm

bull Un motoreacuteducteur de chez Faulhaber avec une puissance de 45 W reacutefeacuterences moteur 2657 reacuteducteur seacuterie 26 Rr =14) prix unitaire TTC 507 euro disponibles de suite longueur sans arbre 125 mm

Voir en annexes pour les caracteacuteristiques de ces reacutefeacuterencesAux vues des longueurs obtenues il nous est rapidement apparu qursquoune transmission

directe Motoreacuteducteur Roue nrsquoeacutetait pas envisageable du fait drsquoune longueur totale minimum de (125 + 30) 2 = 310 mm avec 125 la longueur drsquoun motoreacuteducteur 30 la largeur estimeacutee drsquoune roue Nous avons donc opteacute pour une solution agrave renvoi drsquoangle

d Choix deacutefinitif

Gracircce aux caracteacuteristiques preacuteceacutedentes nous avons choisi les RE035GPLG52 du fait de leurs disponibiliteacute caracteacuteristiques et prix En ce qui concerne la transmission par renvoi drsquoangle nous avons opteacute pour des systegravemes deacutejagrave tout fait qui permettent une plus grande preacutecision un meilleur rendement et un meilleur rapport qualiteacute prix que les montages artisanaux Voici la reacutefeacuterence que nous avons retenue

bull Reacutefeacuterence 748-437 chez Radiospares ou B332312 chez HPCeurope avec les caracteacuteristiques suivantes Rr = 1 C max = 068 Nm V max = 1500 trmin-1 η = 094 prix RS 5750 euro piegravece et prix HPC 52 euro piegravece (avec -10 en tant que participant agrave la Coupe) (Voir les autres caracteacuteristiques en annexes)Pour des raisons de disponibiliteacute nous avons commandeacute ces 2 piegraveces chez

Radiospares En ce qui concerne la liaison entre lrsquoarbre moteur et lrsquoarbre de la transmission nous

avons deacutecideacute drsquousiner un accouplement rigide dont les plans se trouvent en annexes Du coteacute moteur le blocage en rotation est assureacute par une vis de pression qui se trouve dans la gorge preacutevue initialement pour la clavette De lrsquoautre coteacute nous avons usineacute un meacuteplat sur lrsquoarbre du reacuteducteur meacuteplat sur lequel vient appuyer une autre vis de pression

3 Les supports des moteurs

A lrsquoorigine nous avions penseacute mettre les moteurs et les roues coaxiaux nous avions donc imagineacute un systegraveme de bride qui permettrait de bloquer le moteur selon 2 axes de translation et 2 axes de rotation gracircce agrave 2 vis de serrage associeacutee agrave une eacutequerre qui permettait le blocage selon le dernier axe de translation et de rotation Le tout eacutetait fixeacute sur une plaque de fond qui constituerait la base du robot

Voici donc a quoi ressembler cette bride (pour un moteur)

Bride de maintien pour moteur de faible longueur

Bride monteacutee sur la plaque de fond avec un moteur

Ensuite lorsque nous sommes passeacutes agrave la solution avec renvoi drsquoangle nous avons deacutecideacute drsquousiner une piegravece certes complexe mais qui proposait une universaliteacute notamment au niveau des diffeacuterentes positions des moteurs (verticale et horizontale) aspect qui satisfait pleinement au cahier des charges Cette piegravece que par la suite nous appellerons Bloc Moteur doit permettre la mise et le maintien en position du motoreacuteducteur la mise et le maintien en position du reacuteducteur la fixation de lrsquoensemble au sein du robot notamment sur la plaque de fond

Apregraves une petite eacutetude nous sommes arriveacutes agrave une piegravece de ce type

Bloc moteur pour la solution avec renvoi dangle

Cette nouvelle piegravece agrave de nombreux avantages

bull Elle nous permet de pouvoir incorporer le renvoi drsquoangle bull De maintenir les piegraveces entre-elles et de limiter les efforts directs sur les

diffeacuterents eacuteleacutementsbull Drsquoecirctre installeacute agrave lrsquohorizontale ou agrave la verticale

Effectivement lors de la conception du bloc moteur nous avons penseacute aux anneacutees futures et nous avons donc preacutevu un montage des moteurs agrave la verticale ou agrave lrsquohorizontale

En position verticale

En position horizontale

4 Les roues

Comme vu lors de la veille technologique les chenilles ont quasiment disparu de la compeacutetition Ceci est ducirc au fait que cette technologie est difficile agrave mettre en œuvre et que les regraveglements proposent des aires de jeux totalement planes

Or cette anneacutee un fosseacute fait son apparition dans le regraveglement Ce fosseacute de 36 mm de profondeur vient seacuteparer deux aires de jeu Une neacutecessiteacute de traverser le fosseacute apparaicirct donc pour aller renverser les quilles de lrsquoadversaire

Deux solutions sont alors possibles bull Traverser sur le pont aleacuteatoirebull Traverser le fosseacute

Si nous choisissons de traverser par le pont lrsquoideacutee de garder notre systegraveme de roues est correcte par contre un systegraveme agrave chenille permettrait de passer par le fosseacute

Apregraves reacuteflexion de lrsquoeacutequipe PR et des membres de la Coupe E=M6 la solution de traverser par le pont est retenue Ce qui nous a conduit tout droit vers la solution agrave roues

Les roues utiliseacutees sont des roues de roller de diamegravetre 80mm et drsquoune largeur de 22mm Ces roues sont relieacutees agrave lrsquoarbre drsquoun renvoi drsquoangle par lrsquointermeacutediaire drsquoun accouplement en aluminium

5 La base

Pour la base du robot il nous a parut indispensable de dimensionner la plaque de fond en eacutepaisseur De plus afin de maintenir la solution de modulariteacute de lrsquoensemble moteurs ndash roues nous avons deacutecideacute de fixer les deux supports moteurs sur un platine qui sera elle-mecircme fixeacutee agrave la plaque de fond du robot

Premiegraverement nous avons effectueacute un dimensionnement succinct de la platine

a Reacuteaction drsquoappui

0=sum Fx OK

0=sum Fy qLRbRaorRbRaqL210 =+=++minus

qLRa21=

AB = 027 m = L

P = mg P = 15 x 10 = 150 N

Q = 150 N270 mm soit q = 555 Nm

Bille folle

Accouplement

Bloc moteur

Renvoi drsquoangle

Platine

Base du robot

Motoreacuteducteur

Roue

b Moment de flexion

0 =sum= cMMf

02

sup2 =minus+ RaxqxMf

sup221

21 qxqLxMf minus=

c Flegraveche

)( xMfEIY =

sup221

21 qxqLxEIY minus=

161sup2

41 3 CqxqLxEIY +minus=

21241

121 43 CxCqxqLxEIY ++minus=

d Conditions aux limites

Y (x=0) = 0 C2 = 0

Y (x=L) = 0 012412

44

=+minus LCqLqL

241

4qLLC =

241

3qLC =

On obtient donc

xqLqxqLxEIY 343

241

241

121 +minus=

De mecircme

+minus=

242412

343 xLxLxEIqY

On sait que bull E = 210 000 10^6bull Y = 1 10^-3 mbull Q = 555 Nmbull L = 027 m

bull12

3bhI = b = 006 m

+

minus

=24

22416

128

343 LL

LLL

EYqI

36

4

0010102100000601052155512timestimes

timestimes=minus

h

Et enfin on trouve h lrsquoeacutepaisseur de la platine h= 43 mm

Apregraves reacuteflexion nous nous sommes rendu compte que ce calcul nrsquoeacutetait pas rigoureux car nous avons consideacutereacute la theacuteorie des poutres or dans notre cas nous ne pouvons satisfaire cette theacuteorie (Longueur de la section = 10 x la largeur de la section)

Il nous faut donc utiliser un modegravele plus preacutecis crsquoest pourquoi nous avons deacutecideacute de faire un calcul par eacuteleacutements finis sous Ideacuteas Ainsi nous trouvons une eacutepaisseur h = 32 mm

Il nous faut donc une platine de plus de 3 mm Etant donneacute que la platine sera solidairement fixeacutee agrave la base du robot nous avons deacutecideacute de prendre une eacutepaisseur de platine de 2 mm et une eacutepaisseur de base de robot de 2 mm Nous obtenons donc une eacutepaisseur totale de 4 mm Ainsi nous devrions avoir sous une charge de 15 kg moins drsquoun millimegravetre de flexion de la base du robot

6 Reacutesultats

Assemblage en position horizontale

Vue eacuteclateacutee en position verticale

Photo de lrsquoassemblage roues ndash blocs moteurs ndash moteurs ndash platine

Partie C Lrsquoeacutelectronique20 Les batteries

Afin de pouvoir choisir les batteries approprieacutees agrave notre application nous devons dans un premier temps faire une estimation de la consommation drsquoeacutenergie totale avec les pointes de courant envisageacutees dans notre robotIl est agrave noter que nous ne connaissons pas encore en deacutetail tous les eacuteleacutements annexes qui seront implanteacutes dans le robot comme par exemple les capteurs et actionneurs diverses qui seront choisis en fonction des objectifs technologiques atteints ou non de lrsquoassociation et de la strateacutegie finaleDans le but de pouvoir utiliser agrave nouveau dans lrsquoavenir notre base roulante nous avons choisi de surestimer les besoins en eacutenergie de sorte agrave ne pas ecirctre pris au deacutepourvu

La consommation pourrait se deacutecomposer ainsi - 2 moteurs de 24V sous 21A soit 1008 Watts pendant 100 du temps- 3 actionneurs de 21 Watts chacun soit 63 Watts pendant 50 du temps- 3A pour lrsquoeacutelectronique sous 5V soit 15 Watts pendant 100 du temps (Asservissement carte de commandes capteurs)

Ce qui nous fait au total une consommation maximale ~180 WattsLa consommation permanente devrait ecirctre ~147 Watts permanents il faut donc que les batteries puissent deacutebiter un courant de ~6 A sous 24 V durant le fonctionnement du robot

Apregraves une longue recherche on a pu reacutealiser le tableau comparatif des batteries suivant

typeDensiteacute

deacutenergie (WhKg)

Densiteacute deacutenergie (WhL)

auto-deacutecharge (mois)

voltage dune cellule (V)

temps de charge rapide

plomb 35 111 5 agrave 10 2 8h agrave 15h

NiCd (Nickel Cadnium) 50 94 10 agrave 20 12 1h30min

NiMH (Nickel Metal Hydride) 80 135 20 agrave 30 13 2h agrave 4h

Lithium Ion 100 196 5 agrave 10 36 2h agrave 4h

Lithium polymer 150 200 5 agrave 10 36 2h agrave 4h

AlKaline rechargeable 80 15 2h agrave 3h

type

cycle de charge-deacutecharge avant

que capaciteacute passe de 100 agrave

80

Courant max Courant max pic effet meacutemoire estimation

(euroWh) prixcycles

plomb 200 agrave 300 02C 05C M 0895 0003

NiCd (Nickel Cadnium) 1500 1C 20C H 416 0003

NiMH (Nickel Metal Hydride) 300 agrave 500 05C 5C L 2 0004

Lithium Ion 500 agrave 1000 1C 2C L 8 0008

Lithium polymer 300 agrave 500 1C 2C agrave 5C L 32 0006

AlKaline rechargeable 50 02C 05C H 178 0036

Effet meacutemoire L (Low) M (Medium) H (High)Courant max C signifie capaciteacute par exemple une batterie qui peut deacutelivrer un courant max de 1C de 4Ah pourra donc deacutelivrer 4A au maximum sans risque de deacuteteacuterioration

Nous nous sommes inteacuteresseacutes au courant maximum et au temps de charge rapide pour notre choix de batteriesLe type de batterie qui semble le plus approprieacute pour nous est le type Nickel-Cadnium parfaitement adapteacute au pic drsquoappel de courant que provoquent des moteurs pouvant supporter des charges rapides en 1h30min seulement afin de devoir preacutevoir trop de jeux de batteries diffeacuterents

Les batteries LI-Ion ou LI-Polymer preacutesentent une densiteacute eacutenergeacutetique tregraves inteacuteressante mais leur prix est beaucoup plus eacuteleveacute agrave lrsquoachat et de plus dans notre application roulant sur un sol peu accidenteacute la masse pouvant ecirctre transporteacutee est suffisante pour le type NiCd

Les batteries LI-Ion ou LI-Polymer sont plus adapteacutees agrave lrsquoaeacuteromodeacutelisme ou au petit appareil eacutelectroniqueQuant aux batteries au plomb qui sont vraiment bon marcheacute le courant maximum supporteacute est trop faible est supposerait drsquoavoir une forte capaciteacute

Nous voulons avoir une autonomie de 30 minutes il nous faut donc une eacutenergie de 735 WhOr sous 24 V les batteries doivent avoir une capaciteacute de ~3 AhComme les batteries NiCd peuvent deacutebiter un courant maximum de 1C (une fois leur capaciteacute) nous devons donc prendre des batteries de 6Ah sous 24 V ce qui nous donnera une autonomie de 1 heure

Il faudra donc soit acheter un bloc accumulateur NiCd de 24 V 6 Ah srsquoil existe dans le commerce soit le reacutealiser nous mecircme en assemblant diffeacuterents eacuteleacutements

Rappelons que lrsquoassociation en seacuterie permet drsquoadditionner les tensions des eacuteleacutements associeacutes et que lrsquoassociation en parallegravele permet drsquoadditionner les courants deacutebiteacutes

Par exemple des eacuteleacutements de 12 V chacun pour 3 Ah srsquoassocieraient ainsi

Soit deux seacuteries de 20 eacuteleacutements eacutequivalentes agrave 24 V et faisant une capaciteacute de 3 Ah chacune

Il est possible de reacutepartir les accumulateurs en diffeacuterents paquets pour faciliter le rangement dans le robot ou reacutepartir la masse ou eacuteventuellement trouver des packs dans le commerce

Dans le cas de lrsquoUV PR le choix des batteries reste pour le moment sur les NiCd mais pour les essais pratiques on utilisera des batteries au plomb que lrsquoon possegravede deacutejagrave drsquoautant plus que les essais sont reacutealiseacutes avec les moteurs de propulsion et lrsquoasservissement seul ce qui

neacutecessite un deacutebit de courant de 24105 = 4375 A sur 2 batteries soit asymp2187 A

Comme les batteries au plomb peuvent deacutebiter 02C il nous en faudrait des de asymp 109 Ah

Or les essais de la base roulante ne seront que de courtes dureacutees et lrsquoon se contentera donc drsquoutiliser des batteries de 6 Ah pour des raisons de volume mecircme si elles ne sont pas vraiment bien dimensionneacutees

21 La commande des moteurs

Dans un premier temps nous verrons un bref reacutecapitulatif des cartes et modules drsquoasservissement du commerce

Pour la commande les moteurs plusieurs solutions ont eacuteteacute envisageacutees - Un asservissement lsquotout faitrsquo analogique modules laquo Escap raquo- Une solution lsquoartisanalersquo carte avec asservissement numeacuterique- Un asservissement lsquotout faitrsquo numeacuterique circuits laquo LM629 raquo

a Comparatifs des modules drsquoasservissement et calcul des correcteurs

Veille technologique sur les systegravemes drsquoasservissement utiliseacutes par les diffeacuterentes eacutecoles de la coupe E= M6

Le but de cette partie est drsquoeacutetudier les principales techniques drsquoasservissement utiliseacutees par les eacutecoles de la Coupe E=M6 Ce document est loin drsquoecirctre exhaustif et servira de base agrave compleacuteter et actualiser pour les semestres et eacutequipes prochaines

Apregraves une eacutetude sur plus drsquoune trentaine drsquoeacutecoles il ressort trois formes drsquoasservissement la plus utiliseacutee agrave 85 est du type PID en majoriteacute reacuteduit au PI ensuite viennent les microcontrocircleurs PIC associeacutes au PID et les modules AVR nous allons par la suite deacutetailler ces trois solutions Il existe eacutegalement des systegravemes de controcircle dits agrave retour drsquoeacutetat jamais utiliseacutes jusqursquoagrave preacutesent pour la Coupe crsquoest pourquoi nous ne deacutevelopperons pas son approche

3 Systegraveme PID

httpwwwancrorgfichtechactionpidindexhtm

a Principe

Pour pouvoir tester un asservissement il faut dabord reacutealiser une plate-forme de deacuteveloppement le plus geacuteneacuteralement du type suivant Mais pour commencer un brin de theacuteorie illustreacute par des exemples Le scheacutema de principe est repreacutesenteacute ci-dessous

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

Nous avons bien un scheacutema en boucle fermeacutee puisque la sortie du systegraveme est reacuteinjecteacutee dans lentreacutee Les trois blocs bleus correspondent chacun agrave une fonctionnaliteacute Ki est le coefficient inteacutegral Kp le coefficient proportionnel et Kd le coefficient deacuteriveacute Chacun de ces coefficients a une fonctionnaliteacute bien preacutecise Commenccedilons par le plus simple le proportionnel

b Asservissement P

Lasservissement proportionnel est essentiel au fonctionnement du PID Il permet essentiellement de donner de la puissance au moteur Voici quelques reacutesultats dexpeacuterimentations avec Ki=0 et Kd=0

La courbe noire repreacutesente la consigne que lon deacutesire atteindre (Ud) cest un eacutechelon de valeur 32 La courbe bleue repreacutesente la vitesse reacuteelle du systegraveme (Y) Comme vous pouvez le constater plus Kp est grand plus le systegraveme converge vite vers sa valeur finale Mais en contrepartie pour des valeurs de Kp trop grandes le systegraveme oscille Mais lagrave nest pas notre plus gros problegraveme en effet sur ces courbes on voit nettement que la vitesse du moteur natteint jamais la vitesse deacutesireacutee Cest ce que lon appelle lerreur statique elle correspond agrave la diffeacuterence entre la vitesse reacuteelle et la vitesse deacutesireacutee en reacutegime eacutetablie (une fois que le systegraveme sest stabiliseacute) Pour compenser cette erreur statique on rajoute le terme inteacutegral

c Asservissement PI

Le correcteur inteacutegral sert principalement agrave supprimer lerreur statique Lideacutee principale est de charger ou inteacutegrer lerreur depuis le deacutebut et dajouter cette erreur agrave la consigne jusquagrave ce quelle devienne nulle Lorsque cette erreur est nulle le terme inteacutegral se stabilise et il compense parfaitement lerreur entre la consigne et la vitesse reacuteelle Deacutemonstration en image

On voit cette fois-ci que le terme inteacutegral a bien fonctionneacute et que lerreur statique est nulle On constate aussi que plus le gain Ki est grand plus le systegraveme converge vite En revanche plus Ki est grand plus le systegraveme oscille et plus le deacutepassement est grand Sur des asservissements en position le terme deacuteriveacute permet de diminuer le deacutepassement et les oscillations Nous allons voir que dans notre cas nous avons quelques problegravemes

d Asservissement PID ou agrave avance de phase

On a donc rajouteacute le terme deacuteriveacute comme tout bon livre dautomatique le preacuteconise et voici les reacutesultats

Cette fois ci jai choisi de repreacutesenter la tension appliqueacutee au moteur (U) le problegraveme est bien plus flagrant ici Vous voyez que lorsque lon ajoute le terme deacuteriveacute la commande est extrecircmement bruiteacutee En reacutealiteacute on somme agrave la commande la deacuteriveacutee de la vitesse reacuteelle que lon multiplie par un gain Kd La deacuteriveacutee dune vitesse est une acceacuteleacuteration cela signifie que lon amplifie tous les bruits dacceacuteleacuteration et en plus on les multiplient par un gain Kd Donc rajoute du bruit amplifieacute dans la commande Alors pourquoi mettent t-ils ce terme deacuteriveacutee dans les livres Simplement parce que ce bruit est typique des asservissement en vitesse Sur des asservissements en position ce problegraveme est moins freacutequent car la deacuteriveacutee de la position est la vitesse

Ici le problegraveme eacutetait visible parce que nous avons reacutealiseacute toutes ces courbes sur un systegraveme reacuteel Si nous avions simuleacute ces reacutesultats lacceacuteleacuteration naurait pas eacuteteacute bruiteacutee et les courbes auraient eacuteteacute parfaites Pour impleacutementer ce PID sur notre robot il a fallu programmer en numeacuterique une deacuteriveacutee et une inteacutegrale

e PID numeacuterique et reacuteglage

Notre premier problegraveme est de programmer le terme inteacutegral Il existe une meacutethode qui consiste agrave estimer la surface entre deux eacutechantillons mais dans notre cas nous avons des problegravemes dus aux bruits et agrave la freacutequence deacutechantillonnage Alors il faut sommer toutes les erreurs depuis de deacutebut

Notre second problegraveme est de programmer le terme deacuteriveacute La meacutethode ici est de calculer la pente entre deux eacutechantillons de e Theacuteoriquement cela revient agrave faire le calcul suivant

Avec la peacuteriode deacutechantillonnage Pour faire un asservissement numeacuterique il faut impeacuterativement avoir une peacuteriode fixe Pour gagner du temps de calcul geacuteneacuteralement on inteacutegre directement dans le gain Kd

Voici un lalgorithme exemple

Ti = 0 Initialise le terme inteacutegral

for ( i=1 i lt= Nb_cycles i++ )

Init_timers (1) Initialise le timer agrave notre peacuteriode 1 ms

Y = Codeur () Stoque la valeur du codeur dans Y Rst_codeur () Remet le codeur agrave zeacutero Ud = Consigne () Mise agrave jour de la consigne e_old=e Stoque e(t-1) e = Ud - Y Calcul de lerreur Ti = Ti + e Calcul de linteacutegral Calcul du PID U = Kp e Terme proportionnel

+ Ki Ti Terme inteacutegral + Kd ( e - e_old ) Terme deacuteriveacute Moteur (U) On applique la consigne

while ( end_timer() ) On attend la fin de la peacuteriode

Pour le reacuteglage des gains Kp Ki et Kd il existe diffeacuterentes meacutethodes Ici nous lavons fait de maniegravere empirique et le reacutesultats est plutocirct bon Linconveacutenient de ces meacutethodes est quelles demandent un modegravele du systegraveme ce qui est geacuteneacuteralement dur agrave produire Il existe

aussi des composants programmables qui permettent de faire directement lasservissement numeacuterique (HCTL 1100 LM629) Ils sont exactement baseacutes sur la meacutethode preacutesenteacutee ici

Pour ce qui est du reacuteglage des correcteurs lrsquooptimal est drsquoutiliser la meacutethode de lrsquooptimum dissymeacutetrique une fois que lrsquoon agrave reacutealiseacute le modegravele du systegraveme La plus part des eacutecoles ne reacutealisent pas ce modegravele et ce limite donc agrave une correction empirique en reacutealisant des tests ou en utilisant la meacutethode Ziegler-Nichols agrave partir de la reacuteponse agrave un eacutechelon de tension

Par la suite nous rappellerons les meacutethodes de Ziegler-Nichols et de lrsquooptimum dissymeacutetrique

f Les meacutethodes de Ziegler-Nichols

Ces meacutethodes fournissent des reacuteglages pour des correcteurs de type PID (pouvant ne comporter quune action Proportionnelle une action Proportionnelle et une action Inteacutegrale ou les 3 actions simultaneacutement) dont la structure est la suivante

bull MEacuteTHODE DE ZIEGLER NICHOLS TEMPORELLE

Elle est adapteacutee aux systegravemes stables en boucle ouverte qui ont une reacuteponse apeacuteriodique La reacuteponse agrave un eacutechelon unitaire du systegraveme physique doit ecirctre enregistreacutee Diffeacuterentes caracteacuteristiques de la reacuteponse obtenue sont mesureacutees

Le modegravele approcheacute utiliseacutee par Ziegler Nichols comporte une constante de temps et un retard pur ou bien un retard pur et un inteacutegrateur

Si le systegraveme physique comporte un inteacutegrateur les mesures de a et de L demeurent disponibles sur le deacutebut de la reacuteponse

Les reacuteglages suggeacutereacutes par la meacutethode temporelle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 1a - -correcteur PI 09a 3L -

correcteur PID 12a 2L L2Concernant le raffinement des reacuteglages augmenter Kp ou diminuer Ti augment les

oscillations de la sortie

bull MEacuteTHODE DE ZIEGLER NICHOLS FREacuteQUENTIELLE

Cette meacutethode convient particuliegraverement bien aux systegravemes instables en boucle ouverte pour lesquels la meacutethode temporelle nest pas envisageable Lexpeacuterimentation se fait sur le systegraveme boucleacute avec un simple gain proportionnel qui doit ecirctre stable Le principe est de modifier la valeur du gain par essai-erreur jusquagrave atteindre la limite de stabiliteacute (pheacutenomegravene de pompage) Il reste agrave relever le gain limite K0 obtenu et agrave mesurer la peacuteriode T0 des oscillations de la reacuteponse obtenue

Les reacuteglages suggeacutereacutes par la meacutethode freacutequentielle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 05 K0 - -correcteur PI 045 K0 08 T0 -

correcteur PID 06 K0 05 T0 0125 T0

A la page Internet suivante vous trouverez un simulateur de cette meacutethode

httpwww-hadocensieginpgfrhadocateliersreglageEmpCorrReglEmpCorrDroithtml

g Meacutethode de lrsquooptimum dyssimeacutetique (voir poly MC06 Chap 5 et 8)

Cette meacutethode srsquoapplique une fois le modegravele reacutealiseacute et mis sous la forme drsquoun second ordre

et on obtient le correcteur PI

pour une surtension deacutesireacutee QdB

Q = 10^(QdB20)λ= radic(Qsup2(Qsup2-1))Δφ = arcos (1 λ)α= ((1+sin(Δφ))cos(Δφ))sup2ωN= ωQαω0= ωQradicαKP= ω0 λ KQ

4 Les microcontrocircleurs

a Avant propos

Cette fiche se veut ecirctre sous la forme dun projet Un projet non termineacute ougrave chacun peut apporter sa contribution (ameacuteliorations adaptations corrections etc)De ce fait ces pages sont ameneacutees agrave eacutevoluer et vous-mecircme pourrez participer agrave leur eacutevolution

Pourquoi avoir choisit un tel mode de travail Tout simplement parce que le sujet est vaste et que des variations sont possibles suivant lutilisation quen feront les diffeacuterentes personnes

Le but de ce projet est de reacutealiser une double asservissement de vitesse (type PID) de deux moteurs sur un seul PIC (type 16F877) Lutiliteacute majeure eacutetant de faire rouler un robot bien droit et agrave la bonne vitesse A quoi ccedila sert plus preacuteciseacutement

Avec un seul PIC ce projet permet aux roboticiens amateurs et chevronneacutes de reacutealiser facilement leur asservissement de vitesse de moteurs agrave courant continu (en geacuteneacuteral les moteurs de propulsions de leur robot mais ccedila peut ecirctre bien sucircr dautres moteurs) La commande de lasservissement pourra se faire agrave terme en liaison seacuterie (deacutejagrave fait) I2C ou par bus ISA

b Avantages

Il existe bien sucircr dautres systegravemes qui gegraverent un asservissement de vitesses Des systegravemes professionnels existent comme les LM629 Ils ont linconveacutenient decirctre cher (et ce pour un seul moteur) et relativement complexes

Pourquoi chercher un fusil pour chasser des moustiques Le double asservissement sur PIC vous coucircte le prix dun PIC soit environ 15Euro pour un 16F877 actuellement et ce pour 2 moteurs Ce double asservissement se veut relativement simple De plus vous pouvez en modifier le programme et ladapter agrave vos besoins

c Inconveacutenients

Les personnes qui auront les moyens preacutefeacutererons opter pour un systegraveme professionnel certainement pour des raisons de fiabiliteacute mais cest agrave leurs risques et peacuterils -)La puissance du PIC eacutetant limiteacutee il ne peut pas reacutealiser des PID trop rapides ou trop complexes Il y a en particulier une limitation sur le nombre dimpulsions par seconde quil est capable de geacuterer

Le langage utiliseacute eacutetant le C il faut une licence du logiciel pour pouvoir modifier et recompiler le code source c Mais le projet se veut geacuteneacuterique Une version donneacutee pourra ecirctre utiliseacute sans recompilation en respectant quelques contraintes

d Asservissement

En fait on pourrait imaginer quil suffirait denvoyer au moteur une puissance constante pour quil tourne tout le temps agrave la mecircme vitesse Ce nest pas vrai du tout Tout dabord 2 moteurs dune mecircme seacuterie nauront pas forceacutement le mecircme comportement Ensuite parce que les niveaux de tension ou dautre diffeacuterences eacutelectriques peuvent jouer Enfin parce que des influences exteacuterieures (obstacles frein meacutecanique du robot) peuvent jouer

Du coup il est tregraves difficile de faire aller un moteur agrave la vitesse voulue Parfois ce nest pas gecircnant mais ccedila peut lecirctre Un exemple classique est le robot avec 2 roues motrices type char une configuration qui est tregraves courante Mais pour que ce robot aille droit il faut que les 2 moteurs aillent exactement agrave la mecircme vitesse

La solution est de faire un asservissement Cest a dire moduler dynamiquement la puissance envoyeacute aux moteurs suivant leur vitesse mesureacutee afin dadapter celle-ci agrave ce qui est deacutesireacuteeCela implique un eacuteleacutement tregraves important pour asservir il faut un capteur de vitesse du moteur En geacuteneacuteral il sagit dun compte-tour qui enverra N impulsions (ou pas) par tour de moteur Ensuite un programme va calculer en fonction de la vitesse mesureacutee du moteur la puissance agrave utiliser

Les asservissements sont constamment en train de chercher leacutequilibre Il faut bien comprendre quils mettent un certain temps agrave latteindre et ce dernier peut aussi ecirctre instable si lasservissement est mal reacutegleacute

Lasservissement quon va utiliser ici est un classique PIDou plus preacuteciseacutement un PI car pour des raisons de vitesses de traitement la composante deacuteriveacutee est laisseacutee de coteacute (mais rien de difficile agrave rajouter)

Le PID ou Proportionnel Inteacutegrale Deacuteriveacute est une meacutethode de calcul dasservissement

Soit Kp Ki et Kd les coefficients proportionnels inteacutegrale et deacuteriveacuteSoit e lerreur Vitesse mesureacutee moins vitesse demandeacuteeSoit Ti le terme inteacutegral dabord initialiseacute agrave 0

Consigne a appliquer (PWM) = Kp e + (1Ki) (Ti += e) + Kd (e - e(t-1))

On pourrait dire des pages et des pages sur le PID et ce nest pas mon but ici Merci de vous reporter au lien ci-dessous

Pour plus de deacutetails sur le PID la page de lANCR httpwwwancrorgfichtechactionpidindexhtmChez les Fribottes la Simulation de Jean-Claude httpwwwwikifreefrWiKiFriindexphpSimulateur20de20PID

e Le pic

Le PIC est un petit microcontrocircleur assez bon marche et simple a programmer comme a utiliser

La aussi je vais pas rentrer dans les deacutetails vous pouvez vous reporter agrave la bdtech du site Fribotte et en particulier aux cours de Bigonoff

Le PIC est ici programmeacute en C voir la page Fribotte ici Lutilisation du langage C permet dalleacuteger consideacuterablement le deacuteveloppement dune application compliqueacutee

2 Module AVR

httpwwwenseirbfr~matzfravrphp

Tregraves peu de renseignement sur ce module sinon ces informations drsquoun eacutetudiant de lrsquoEnseirb

Depuis plusieurs anneacutees je participe agrave la coupe de robotique E=M6 dont lobjectif pour chaque eacutequipe est de fabriquer un robot autonome devant se conformer agrave un regraveglement Pour plus dinfos vous pouvez vous rendre sur le site de mon eacutequipe Microb Technology ou bien sur le site de Planegravete Sciences lorganisme beacuteneacutevole qui organise cette compeacutetition

Jai deacutecouvert en 2001 les microcontrocircleurs Atmel AVR auxquels je me suis beaucoup attacheacute dune part parce quils sont assez performants pour des microcontrocircleurs 8 bits mais aussi et surtout car le fameux compilateur libre GCC est capable de compiler du code C pour ces petites becirctes Il existe de surcroicirct plusieurs outils libres permettant de les programmer de les simuler etc

Le but de ce projet est donc de deacutevelopper des modules servant dinterface geacuteneacuterique avec le hardware du microcontrocircleur quel que soit la version (par exemple les UART inclus dans les AVR AtMega sont diffeacuterents de ceux preacutesents dans les petits AVR) et de deacutevelopper des modules utiles pour certaines utilisations usuelles et pas seulement pour la coupe E=M6 (codage de hamming asservissement chiffrement etc)

Vous pouvez contacter leacutequipe de deacuteveloppement agrave avr-devdroids-corporg Pour le moment aucune release na eacuteteacute faite mais le travail est deacutejagrave bien avanceacute Chaque soir un screenshot du CVS est reacutealiseacute Il peut ne pas compiler mais normalement ccedila devrait fonctionner Voici le lien

3 Modules drsquoasservissement analogique laquo Escap raquo

Nous avons essayeacute de reacutecupeacuterer les cartes de commande Escap pour moteurs Escap qui avaient eacuteteacute utiliseacutees en 96 et 98 avec succegraves

Nous les avons monteacutes sur une base roulante qui pesait en tout 74 kgVoici grosso-modo leurs avantages et leurs inconveacutenients (pour les notices techniques voir le rapport 96 ou 98)

a Avantages

Cette carte inclut directement un asservissement avec correcteur PI la commande de puissance les ponts en H

Elle est tregraves facile agrave utiliser Elle est speacutecialement conccedilue pour les moteurs Escap que nous avons donc

parfaitement adapteacutee

b Inconveacutenients

Les moteurs ne fonctionnent correctement que sous 24v Les cartes et les moteurs semblent assez gourment Les cartes nantis de gros radiateurs sont relativement encombrantes Les tachymegravetres monteacutes sur les moteurs ne donnent pas une indication de position

mais de vitesse (qui plus est en analogique)

Nous avons preacutefeacutereacute refaire la partie commande car celle de 1996 souffrait de quelques deacutefauts (cf rapport 1996)

La conversion numeacuterique analogique

Pour reacutealiser la conversion numeacuterique analogique nous avons choisit un pont agrave reacutesistance R-2R

Nous pouvons consideacuterer que chaque bit est relieacute agrave un geacuteneacuterateur ideacuteal de tension (qui deacutelivre 0v ou 5v) Par conseacutequent la reacutesistance eacutequivalente quelque soit lrsquoeacutetat des bits et quelques soit le nombre de bits vue entre la sortie et la masse sera eacutegal agrave R

La tension Vs en fonction de lrsquoeacutetat des bits sera

Ce type de CAN eacutetant tregraves classique nous nrsquoindiquerons pas les deacutemonstrations toutefois vous pourrez les trouver tregraves facilement sur Internet ou sur le Cd-rom drsquoannexes joint au dossier

Le montage de Thevenin eacutequivalent est donc

Nous avons jugeacute qursquoune discreacutetisation sur 8 bits eacutetait un peu superflu crsquoest pourquoi nous nous contenterons de 4 bits (ce qui repreacutesentent quand mecircme 16 niveaux de vitesse)

bull Lrsquoadaptation du niveau de tension

Nous avons agrave la sortie du CAN une tension qui srsquoeacutetend de 0 agrave 5v or la commande des cartes Escap ce fait entre -5v et +5v

On peut voir cette adaptation comme lrsquoajout drsquoun offset de -25v et une amplification de gain 2

Voici le montage reacutealisant cette conversion

M1 est un montage suiveur qui lsquorecopiersquo la tension aux bornes de P1 mais sous une impeacutedance constante et eacutegale agrave 4R En 1996 lrsquoeacutequipe avait brancheacute P1 directement sur M3 mais cela a pour inconveacutenient de faire varier agrave la fois lrsquooffset et la penteLe potentiomegravetre P1 permet drsquoajuster lrsquooffset (permet par conseacutequent de reacutegler lrsquoarrecirct complet de moteur) (La valeur theacuteorique de lrsquooffset est 5V (cf formule en M3))

M2 est aussi un montage suiveur Le potentiomegravetre P2 permet drsquoajuster la pente (qui doit avoir un coefficient directeur de 2) Comme M2 est connecteacute au CAN dont la reacutesistance interne est de R P2 doit ecirctre a peut precirct eacutegal agrave R de la sorte la branche aura une reacutesistance eacutequivalente de 2R

M3 Sommateur (Vs = - 2 (Ve + Voffset))

Qursquoelle valeur choisir pour R

Theacuteoriquement on peut choisir nrsquoimporte quelle valeur pour R mais en pratique si R est trop petite une intensiteacute importante serait consommeacutee sans raison et si R est trop grande la forte impeacutedance du montage le rendra tregraves sensible aux parasites (secteur moteurshellip)Ce montage a eacuteteacute testeacute et fonctionne correctement pour R=5k les amplificateurs opeacuterationnels utiliseacutes sont des LM324 mais drsquoautres seraient tout agrave fait envisageables (peu de contraintes de vitesse et de tensions de deacutechets)

4 Conclusion

Nous avons preacutefeacutereacute ne pas utiliser les cartes Escap car les moteurs ne renvoient pas une position sous forme drsquoimpulsion mais une vitesse Etant donneacute que nous avions envisageacute un repeacuterage par odomeacutetrie cela compliquait consideacuterablement la tache

Toutefois il faut savoir que cette solution a eacuteteacute testeacutee et fonctionne tregraves bien (bonne preacutecision bonne dynamique) ainsi dans le cas ougrave le repeacuterage ne se fait pas par odomeacutetrie mais des balises exteacuterieures sachez que cette solution est tregraves pratique agrave utiliser En effet pour imposer une vitesse il suffit au microcontrocircleur drsquoappliquer sur un port un mot binaire correspondant agrave la vitesse voulue hellip et crsquoest tout La carte Escap se charge du reste

5 Carte drsquoasservissement numeacuterique laquo artisanale raquo

La carte reacutealiseacutee baseacutee sur un microcontrocircleur PIC 16F877A srsquoest aveacutereacutee fonctionnelle mais les tests drsquoalgorithmes drsquoasservissement nrsquoont pas eacuteteacute effectueacutesEn effet lrsquoutilisation de cette solution neacutecessite un microcontrocircleur deacutedieacute agrave lrsquoasservissement capable de communiquer via un protocole agrave deacutefinir avec la laquo carte megravere raquo (centralisant les retours des autres capteurs du robot et agissant sur les diffeacuterents actionneurs en fonction de la strateacutegie)Or afin de limiter le nombre de microcontrocircleurs sur le robot et du fait que lrsquoon dispose drsquoun budget suffisant nous avons deacutecideacute drsquoessayer drsquoutiliser des composants speacuteciaux reacutealisant lrsquoasservissement

Le systegraveme se deacutecompose en

- Un microcontrocircleur pour appliquer la PWM asservir et commander- Une carte de puissance pour chaque moteur baseacutee sur un LMD18200- Une carte compteur drsquoimpulsions pour les codeurs

Afin de favoriser lrsquointeractiviteacute et les reacuteglages jrsquoai ajouteacute une carte afficheur LCD avec 6 boutons sur la carte microcontrocircleur

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 11: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

UV PR Reacutealisation drsquoune base roulanteA04

Tout drsquoabord il faut deacuteterminer la force de reacutesistance au roulement celle-ci va deacutependre essentiellement de deux paramegravetres

- force de frottement essieu palier donneacutee par la relation suivante

rff D

dMgF 22

times

times= micro fmicro Coefficient de frottement essieu palier

rD Diamegravetre de la roue

2d

Rayon de lrsquoessieu

- force drsquoeacutecrasement

re D

fMgF 2timestimes=M Masse du robotf Eacutecrasement (00001 m)

Ce qui nous donne lrsquoexpression de la force de reacutesistance au roulement celle-ci devant ecirctre vaincue par le moteur pour mettre le robot en mouvement

+= fdMg

DF f

rres 2

2 micro

A partir de cette force on peut deacuteterminer le couple reacutesistant permanent agrave vaincre

resr

rp FDC times=2

Pour pouvoir appliquer le principe fondamental de la meacutecanique il nous faut deacuteterminer lrsquoinertie de la charge Afin drsquoobtenir ce paramegravetre nous allons consideacuterer qursquoil y a conservation de lrsquoeacutenergie cineacutetique entre le mouvement de rotation (de la roue) et de la translation (du robot) ce qui nous donne

222

221

21

=rArr=Ω r

ccccDMJMVJ

Si lrsquoon ramegravene cette inertie au moteur cela donne

rcmc

rm

ccmc

rmmccc

kJJJJ

JJ

ηη

η

121

21

2

2

2

2

times=hArrΩ

Ωtimes=

Ω=Ωk Rapport de reacuteduction

rη Rendement du reacuteducteurcJ Inertie de la charge

mcJ Inertie rameneacutee au moteur

Page 11

Maintenant nous avons tous les eacuteleacutements pour eacutecrire le principe fondamental de la meacutecanique

mrpmmmtot CCJ minus=γ

Ici compte tenu de notre application pour deacuteterminer le couple moteur neacutecessaire il faut tenir compte du nombre de moteurs

( )[ ]mrpmmcmmoteur

m CJJnb

C 1 ++= γ

Dans lrsquoapplication le nombre de moteurs srsquoeacutelegraveve agrave deux donc si lrsquoon regarde lrsquoexpression du couple moteur pour chaque phase cela donne

- phase drsquoacceacuteleacuteration

mmaccmacc

r

rpa

r

rmaccm

CP

kC

kDMJC

η

ηγ

η

1

122

1

max

2

2

timesΩtimes=

+times

times

+=

- phase de freinage

mmfrmfr

r

rpfr

r

rmfrm

CP

kC

kDMJC

η

ηγ

η

1

122

1

max

2

2

timesΩtimes=

+times

times

+=

- reacutegime permanent

mmpermmperm

r

rppermm

CP

kC

C

η

η1

21

max

timesΩtimes=

=

Maintenant que toutes les relations ont eacuteteacute mises en eacutevidence on peut regarder les reacutesultats que lrsquoon obtient avec le moteur AMAX 26G en gardant agrave lrsquoesprit que pour lapplication on considegravere que les phases drsquoacceacuteleacuteration seront preacutepondeacuterantes crsquoest pourquoi on dimensionnera les moteurs pour les phases drsquoacceacuteleacuterations

Apparemment le moteur aurait pu convenir si le reacuteducteur avait eu un rapport de reacuteduction plus faible En effet le moteur peut deacutelivrer le couple nominal neacutecessaire mais nous ne permet pas drsquoatteindre les vitesses souhaiteacutees Dans un premier temps nous avions revu nos speacutecifications agrave la baisses envisageacute la meilleure faccedilon de commander le moteur de faccedilon agrave ce que lrsquoon deacutemarre toujours en suivant la limite de puissance imposeacutee par le collecteur meacutecanique Ceci nous aurait permis drsquoavoir la meilleure dynamique du moteur La conseacutequence de ce type de fonctionnement aurait eacuteteacute un eacutechauffement excessif et un vieillissement preacutematureacute du moteur Donc les risques de casse auraient eacuteteacute multiplieacutes

Suite agrave un incident durant les phases de tests un des moteurs crsquoest vu endommageacutes crsquoest pourquoi il agrave fallu dimensionner drsquoautres moteursNous avons donc repris nos calculs avec un nouveau rapport de reacuteduction ce qui nous donne les reacutesultats suivants

Nous avons donc rechercheacute un moteur qui aurait pu avoir ses caracteacuteristiques agrave savoir - Couple nominal 34 mNm- Vitesse nominale 3342 trmin- Puissance nominale 16 W- Alimentation 24V- Reacuteducteur 1 14

Ce qui nous donnerait en sortie de reacuteducteur - Couple nominal 033 Nm- Vitesse nominale 239 trmin

Nous avons eu beaucoup de mal agrave trouver un moteur qui reacuteponde agrave ses exigences de maniegravere preacutecise et qui ait des caracteacuteristiques geacuteomeacutetriques compatibles avec les speacutecifications meacutecaniques Ces speacutecifications meacutecaniques eacutetant contraignantes compte tenu de la strateacutegie envisageacutee

Crsquoest pourquoi nous avons seacutelectionneacute un moteur un peu surdimensionneacute pour notre application toutefois cela va dans le bon sens comme nous sommes obligeacutes de mettre un renvoi drsquoangle ce qui va augmenter les pertes et lrsquoinertie Donc ce surdimensionnement devrait palier aux impreacutevus et combler nos neacutegligences

c Choix possibles

Gracircce aux informations qui preacutecegravedent on a pu choisir 3 Reacutefeacuterences bull Un motoreacuteducteur de chez MDP-Motor avec une vitesse en charge de 309 trmin-1 et

un couple de 057 Nm reacutefeacuterence AMAX32GHPPLG42S prix unitaire TTC 310 euro (avec -20 en tant que participant agrave la Coupe) disponibles sous 12 semaines longueur sans arbre de 142 mm

bull Un motoreacuteducteur de chez MDP-Motor avec une vitesse en charge de 559 trmin-1 et un couple de 060 Nm reacutefeacuterence RE035GPLG52 prix unitaire TTC 337 euro (avec -20 en tant que participant agrave la Coupe) disponibles de suite longueur sans arbre de 144 mm

bull Un motoreacuteducteur de chez Faulhaber avec une puissance de 45 W reacutefeacuterences moteur 2657 reacuteducteur seacuterie 26 Rr =14) prix unitaire TTC 507 euro disponibles de suite longueur sans arbre 125 mm

Voir en annexes pour les caracteacuteristiques de ces reacutefeacuterencesAux vues des longueurs obtenues il nous est rapidement apparu qursquoune transmission

directe Motoreacuteducteur Roue nrsquoeacutetait pas envisageable du fait drsquoune longueur totale minimum de (125 + 30) 2 = 310 mm avec 125 la longueur drsquoun motoreacuteducteur 30 la largeur estimeacutee drsquoune roue Nous avons donc opteacute pour une solution agrave renvoi drsquoangle

d Choix deacutefinitif

Gracircce aux caracteacuteristiques preacuteceacutedentes nous avons choisi les RE035GPLG52 du fait de leurs disponibiliteacute caracteacuteristiques et prix En ce qui concerne la transmission par renvoi drsquoangle nous avons opteacute pour des systegravemes deacutejagrave tout fait qui permettent une plus grande preacutecision un meilleur rendement et un meilleur rapport qualiteacute prix que les montages artisanaux Voici la reacutefeacuterence que nous avons retenue

bull Reacutefeacuterence 748-437 chez Radiospares ou B332312 chez HPCeurope avec les caracteacuteristiques suivantes Rr = 1 C max = 068 Nm V max = 1500 trmin-1 η = 094 prix RS 5750 euro piegravece et prix HPC 52 euro piegravece (avec -10 en tant que participant agrave la Coupe) (Voir les autres caracteacuteristiques en annexes)Pour des raisons de disponibiliteacute nous avons commandeacute ces 2 piegraveces chez

Radiospares En ce qui concerne la liaison entre lrsquoarbre moteur et lrsquoarbre de la transmission nous

avons deacutecideacute drsquousiner un accouplement rigide dont les plans se trouvent en annexes Du coteacute moteur le blocage en rotation est assureacute par une vis de pression qui se trouve dans la gorge preacutevue initialement pour la clavette De lrsquoautre coteacute nous avons usineacute un meacuteplat sur lrsquoarbre du reacuteducteur meacuteplat sur lequel vient appuyer une autre vis de pression

3 Les supports des moteurs

A lrsquoorigine nous avions penseacute mettre les moteurs et les roues coaxiaux nous avions donc imagineacute un systegraveme de bride qui permettrait de bloquer le moteur selon 2 axes de translation et 2 axes de rotation gracircce agrave 2 vis de serrage associeacutee agrave une eacutequerre qui permettait le blocage selon le dernier axe de translation et de rotation Le tout eacutetait fixeacute sur une plaque de fond qui constituerait la base du robot

Voici donc a quoi ressembler cette bride (pour un moteur)

Bride de maintien pour moteur de faible longueur

Bride monteacutee sur la plaque de fond avec un moteur

Ensuite lorsque nous sommes passeacutes agrave la solution avec renvoi drsquoangle nous avons deacutecideacute drsquousiner une piegravece certes complexe mais qui proposait une universaliteacute notamment au niveau des diffeacuterentes positions des moteurs (verticale et horizontale) aspect qui satisfait pleinement au cahier des charges Cette piegravece que par la suite nous appellerons Bloc Moteur doit permettre la mise et le maintien en position du motoreacuteducteur la mise et le maintien en position du reacuteducteur la fixation de lrsquoensemble au sein du robot notamment sur la plaque de fond

Apregraves une petite eacutetude nous sommes arriveacutes agrave une piegravece de ce type

Bloc moteur pour la solution avec renvoi dangle

Cette nouvelle piegravece agrave de nombreux avantages

bull Elle nous permet de pouvoir incorporer le renvoi drsquoangle bull De maintenir les piegraveces entre-elles et de limiter les efforts directs sur les

diffeacuterents eacuteleacutementsbull Drsquoecirctre installeacute agrave lrsquohorizontale ou agrave la verticale

Effectivement lors de la conception du bloc moteur nous avons penseacute aux anneacutees futures et nous avons donc preacutevu un montage des moteurs agrave la verticale ou agrave lrsquohorizontale

En position verticale

En position horizontale

4 Les roues

Comme vu lors de la veille technologique les chenilles ont quasiment disparu de la compeacutetition Ceci est ducirc au fait que cette technologie est difficile agrave mettre en œuvre et que les regraveglements proposent des aires de jeux totalement planes

Or cette anneacutee un fosseacute fait son apparition dans le regraveglement Ce fosseacute de 36 mm de profondeur vient seacuteparer deux aires de jeu Une neacutecessiteacute de traverser le fosseacute apparaicirct donc pour aller renverser les quilles de lrsquoadversaire

Deux solutions sont alors possibles bull Traverser sur le pont aleacuteatoirebull Traverser le fosseacute

Si nous choisissons de traverser par le pont lrsquoideacutee de garder notre systegraveme de roues est correcte par contre un systegraveme agrave chenille permettrait de passer par le fosseacute

Apregraves reacuteflexion de lrsquoeacutequipe PR et des membres de la Coupe E=M6 la solution de traverser par le pont est retenue Ce qui nous a conduit tout droit vers la solution agrave roues

Les roues utiliseacutees sont des roues de roller de diamegravetre 80mm et drsquoune largeur de 22mm Ces roues sont relieacutees agrave lrsquoarbre drsquoun renvoi drsquoangle par lrsquointermeacutediaire drsquoun accouplement en aluminium

5 La base

Pour la base du robot il nous a parut indispensable de dimensionner la plaque de fond en eacutepaisseur De plus afin de maintenir la solution de modulariteacute de lrsquoensemble moteurs ndash roues nous avons deacutecideacute de fixer les deux supports moteurs sur un platine qui sera elle-mecircme fixeacutee agrave la plaque de fond du robot

Premiegraverement nous avons effectueacute un dimensionnement succinct de la platine

a Reacuteaction drsquoappui

0=sum Fx OK

0=sum Fy qLRbRaorRbRaqL210 =+=++minus

qLRa21=

AB = 027 m = L

P = mg P = 15 x 10 = 150 N

Q = 150 N270 mm soit q = 555 Nm

Bille folle

Accouplement

Bloc moteur

Renvoi drsquoangle

Platine

Base du robot

Motoreacuteducteur

Roue

b Moment de flexion

0 =sum= cMMf

02

sup2 =minus+ RaxqxMf

sup221

21 qxqLxMf minus=

c Flegraveche

)( xMfEIY =

sup221

21 qxqLxEIY minus=

161sup2

41 3 CqxqLxEIY +minus=

21241

121 43 CxCqxqLxEIY ++minus=

d Conditions aux limites

Y (x=0) = 0 C2 = 0

Y (x=L) = 0 012412

44

=+minus LCqLqL

241

4qLLC =

241

3qLC =

On obtient donc

xqLqxqLxEIY 343

241

241

121 +minus=

De mecircme

+minus=

242412

343 xLxLxEIqY

On sait que bull E = 210 000 10^6bull Y = 1 10^-3 mbull Q = 555 Nmbull L = 027 m

bull12

3bhI = b = 006 m

+

minus

=24

22416

128

343 LL

LLL

EYqI

36

4

0010102100000601052155512timestimes

timestimes=minus

h

Et enfin on trouve h lrsquoeacutepaisseur de la platine h= 43 mm

Apregraves reacuteflexion nous nous sommes rendu compte que ce calcul nrsquoeacutetait pas rigoureux car nous avons consideacutereacute la theacuteorie des poutres or dans notre cas nous ne pouvons satisfaire cette theacuteorie (Longueur de la section = 10 x la largeur de la section)

Il nous faut donc utiliser un modegravele plus preacutecis crsquoest pourquoi nous avons deacutecideacute de faire un calcul par eacuteleacutements finis sous Ideacuteas Ainsi nous trouvons une eacutepaisseur h = 32 mm

Il nous faut donc une platine de plus de 3 mm Etant donneacute que la platine sera solidairement fixeacutee agrave la base du robot nous avons deacutecideacute de prendre une eacutepaisseur de platine de 2 mm et une eacutepaisseur de base de robot de 2 mm Nous obtenons donc une eacutepaisseur totale de 4 mm Ainsi nous devrions avoir sous une charge de 15 kg moins drsquoun millimegravetre de flexion de la base du robot

6 Reacutesultats

Assemblage en position horizontale

Vue eacuteclateacutee en position verticale

Photo de lrsquoassemblage roues ndash blocs moteurs ndash moteurs ndash platine

Partie C Lrsquoeacutelectronique20 Les batteries

Afin de pouvoir choisir les batteries approprieacutees agrave notre application nous devons dans un premier temps faire une estimation de la consommation drsquoeacutenergie totale avec les pointes de courant envisageacutees dans notre robotIl est agrave noter que nous ne connaissons pas encore en deacutetail tous les eacuteleacutements annexes qui seront implanteacutes dans le robot comme par exemple les capteurs et actionneurs diverses qui seront choisis en fonction des objectifs technologiques atteints ou non de lrsquoassociation et de la strateacutegie finaleDans le but de pouvoir utiliser agrave nouveau dans lrsquoavenir notre base roulante nous avons choisi de surestimer les besoins en eacutenergie de sorte agrave ne pas ecirctre pris au deacutepourvu

La consommation pourrait se deacutecomposer ainsi - 2 moteurs de 24V sous 21A soit 1008 Watts pendant 100 du temps- 3 actionneurs de 21 Watts chacun soit 63 Watts pendant 50 du temps- 3A pour lrsquoeacutelectronique sous 5V soit 15 Watts pendant 100 du temps (Asservissement carte de commandes capteurs)

Ce qui nous fait au total une consommation maximale ~180 WattsLa consommation permanente devrait ecirctre ~147 Watts permanents il faut donc que les batteries puissent deacutebiter un courant de ~6 A sous 24 V durant le fonctionnement du robot

Apregraves une longue recherche on a pu reacutealiser le tableau comparatif des batteries suivant

typeDensiteacute

deacutenergie (WhKg)

Densiteacute deacutenergie (WhL)

auto-deacutecharge (mois)

voltage dune cellule (V)

temps de charge rapide

plomb 35 111 5 agrave 10 2 8h agrave 15h

NiCd (Nickel Cadnium) 50 94 10 agrave 20 12 1h30min

NiMH (Nickel Metal Hydride) 80 135 20 agrave 30 13 2h agrave 4h

Lithium Ion 100 196 5 agrave 10 36 2h agrave 4h

Lithium polymer 150 200 5 agrave 10 36 2h agrave 4h

AlKaline rechargeable 80 15 2h agrave 3h

type

cycle de charge-deacutecharge avant

que capaciteacute passe de 100 agrave

80

Courant max Courant max pic effet meacutemoire estimation

(euroWh) prixcycles

plomb 200 agrave 300 02C 05C M 0895 0003

NiCd (Nickel Cadnium) 1500 1C 20C H 416 0003

NiMH (Nickel Metal Hydride) 300 agrave 500 05C 5C L 2 0004

Lithium Ion 500 agrave 1000 1C 2C L 8 0008

Lithium polymer 300 agrave 500 1C 2C agrave 5C L 32 0006

AlKaline rechargeable 50 02C 05C H 178 0036

Effet meacutemoire L (Low) M (Medium) H (High)Courant max C signifie capaciteacute par exemple une batterie qui peut deacutelivrer un courant max de 1C de 4Ah pourra donc deacutelivrer 4A au maximum sans risque de deacuteteacuterioration

Nous nous sommes inteacuteresseacutes au courant maximum et au temps de charge rapide pour notre choix de batteriesLe type de batterie qui semble le plus approprieacute pour nous est le type Nickel-Cadnium parfaitement adapteacute au pic drsquoappel de courant que provoquent des moteurs pouvant supporter des charges rapides en 1h30min seulement afin de devoir preacutevoir trop de jeux de batteries diffeacuterents

Les batteries LI-Ion ou LI-Polymer preacutesentent une densiteacute eacutenergeacutetique tregraves inteacuteressante mais leur prix est beaucoup plus eacuteleveacute agrave lrsquoachat et de plus dans notre application roulant sur un sol peu accidenteacute la masse pouvant ecirctre transporteacutee est suffisante pour le type NiCd

Les batteries LI-Ion ou LI-Polymer sont plus adapteacutees agrave lrsquoaeacuteromodeacutelisme ou au petit appareil eacutelectroniqueQuant aux batteries au plomb qui sont vraiment bon marcheacute le courant maximum supporteacute est trop faible est supposerait drsquoavoir une forte capaciteacute

Nous voulons avoir une autonomie de 30 minutes il nous faut donc une eacutenergie de 735 WhOr sous 24 V les batteries doivent avoir une capaciteacute de ~3 AhComme les batteries NiCd peuvent deacutebiter un courant maximum de 1C (une fois leur capaciteacute) nous devons donc prendre des batteries de 6Ah sous 24 V ce qui nous donnera une autonomie de 1 heure

Il faudra donc soit acheter un bloc accumulateur NiCd de 24 V 6 Ah srsquoil existe dans le commerce soit le reacutealiser nous mecircme en assemblant diffeacuterents eacuteleacutements

Rappelons que lrsquoassociation en seacuterie permet drsquoadditionner les tensions des eacuteleacutements associeacutes et que lrsquoassociation en parallegravele permet drsquoadditionner les courants deacutebiteacutes

Par exemple des eacuteleacutements de 12 V chacun pour 3 Ah srsquoassocieraient ainsi

Soit deux seacuteries de 20 eacuteleacutements eacutequivalentes agrave 24 V et faisant une capaciteacute de 3 Ah chacune

Il est possible de reacutepartir les accumulateurs en diffeacuterents paquets pour faciliter le rangement dans le robot ou reacutepartir la masse ou eacuteventuellement trouver des packs dans le commerce

Dans le cas de lrsquoUV PR le choix des batteries reste pour le moment sur les NiCd mais pour les essais pratiques on utilisera des batteries au plomb que lrsquoon possegravede deacutejagrave drsquoautant plus que les essais sont reacutealiseacutes avec les moteurs de propulsion et lrsquoasservissement seul ce qui

neacutecessite un deacutebit de courant de 24105 = 4375 A sur 2 batteries soit asymp2187 A

Comme les batteries au plomb peuvent deacutebiter 02C il nous en faudrait des de asymp 109 Ah

Or les essais de la base roulante ne seront que de courtes dureacutees et lrsquoon se contentera donc drsquoutiliser des batteries de 6 Ah pour des raisons de volume mecircme si elles ne sont pas vraiment bien dimensionneacutees

21 La commande des moteurs

Dans un premier temps nous verrons un bref reacutecapitulatif des cartes et modules drsquoasservissement du commerce

Pour la commande les moteurs plusieurs solutions ont eacuteteacute envisageacutees - Un asservissement lsquotout faitrsquo analogique modules laquo Escap raquo- Une solution lsquoartisanalersquo carte avec asservissement numeacuterique- Un asservissement lsquotout faitrsquo numeacuterique circuits laquo LM629 raquo

a Comparatifs des modules drsquoasservissement et calcul des correcteurs

Veille technologique sur les systegravemes drsquoasservissement utiliseacutes par les diffeacuterentes eacutecoles de la coupe E= M6

Le but de cette partie est drsquoeacutetudier les principales techniques drsquoasservissement utiliseacutees par les eacutecoles de la Coupe E=M6 Ce document est loin drsquoecirctre exhaustif et servira de base agrave compleacuteter et actualiser pour les semestres et eacutequipes prochaines

Apregraves une eacutetude sur plus drsquoune trentaine drsquoeacutecoles il ressort trois formes drsquoasservissement la plus utiliseacutee agrave 85 est du type PID en majoriteacute reacuteduit au PI ensuite viennent les microcontrocircleurs PIC associeacutes au PID et les modules AVR nous allons par la suite deacutetailler ces trois solutions Il existe eacutegalement des systegravemes de controcircle dits agrave retour drsquoeacutetat jamais utiliseacutes jusqursquoagrave preacutesent pour la Coupe crsquoest pourquoi nous ne deacutevelopperons pas son approche

3 Systegraveme PID

httpwwwancrorgfichtechactionpidindexhtm

a Principe

Pour pouvoir tester un asservissement il faut dabord reacutealiser une plate-forme de deacuteveloppement le plus geacuteneacuteralement du type suivant Mais pour commencer un brin de theacuteorie illustreacute par des exemples Le scheacutema de principe est repreacutesenteacute ci-dessous

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

Nous avons bien un scheacutema en boucle fermeacutee puisque la sortie du systegraveme est reacuteinjecteacutee dans lentreacutee Les trois blocs bleus correspondent chacun agrave une fonctionnaliteacute Ki est le coefficient inteacutegral Kp le coefficient proportionnel et Kd le coefficient deacuteriveacute Chacun de ces coefficients a une fonctionnaliteacute bien preacutecise Commenccedilons par le plus simple le proportionnel

b Asservissement P

Lasservissement proportionnel est essentiel au fonctionnement du PID Il permet essentiellement de donner de la puissance au moteur Voici quelques reacutesultats dexpeacuterimentations avec Ki=0 et Kd=0

La courbe noire repreacutesente la consigne que lon deacutesire atteindre (Ud) cest un eacutechelon de valeur 32 La courbe bleue repreacutesente la vitesse reacuteelle du systegraveme (Y) Comme vous pouvez le constater plus Kp est grand plus le systegraveme converge vite vers sa valeur finale Mais en contrepartie pour des valeurs de Kp trop grandes le systegraveme oscille Mais lagrave nest pas notre plus gros problegraveme en effet sur ces courbes on voit nettement que la vitesse du moteur natteint jamais la vitesse deacutesireacutee Cest ce que lon appelle lerreur statique elle correspond agrave la diffeacuterence entre la vitesse reacuteelle et la vitesse deacutesireacutee en reacutegime eacutetablie (une fois que le systegraveme sest stabiliseacute) Pour compenser cette erreur statique on rajoute le terme inteacutegral

c Asservissement PI

Le correcteur inteacutegral sert principalement agrave supprimer lerreur statique Lideacutee principale est de charger ou inteacutegrer lerreur depuis le deacutebut et dajouter cette erreur agrave la consigne jusquagrave ce quelle devienne nulle Lorsque cette erreur est nulle le terme inteacutegral se stabilise et il compense parfaitement lerreur entre la consigne et la vitesse reacuteelle Deacutemonstration en image

On voit cette fois-ci que le terme inteacutegral a bien fonctionneacute et que lerreur statique est nulle On constate aussi que plus le gain Ki est grand plus le systegraveme converge vite En revanche plus Ki est grand plus le systegraveme oscille et plus le deacutepassement est grand Sur des asservissements en position le terme deacuteriveacute permet de diminuer le deacutepassement et les oscillations Nous allons voir que dans notre cas nous avons quelques problegravemes

d Asservissement PID ou agrave avance de phase

On a donc rajouteacute le terme deacuteriveacute comme tout bon livre dautomatique le preacuteconise et voici les reacutesultats

Cette fois ci jai choisi de repreacutesenter la tension appliqueacutee au moteur (U) le problegraveme est bien plus flagrant ici Vous voyez que lorsque lon ajoute le terme deacuteriveacute la commande est extrecircmement bruiteacutee En reacutealiteacute on somme agrave la commande la deacuteriveacutee de la vitesse reacuteelle que lon multiplie par un gain Kd La deacuteriveacutee dune vitesse est une acceacuteleacuteration cela signifie que lon amplifie tous les bruits dacceacuteleacuteration et en plus on les multiplient par un gain Kd Donc rajoute du bruit amplifieacute dans la commande Alors pourquoi mettent t-ils ce terme deacuteriveacutee dans les livres Simplement parce que ce bruit est typique des asservissement en vitesse Sur des asservissements en position ce problegraveme est moins freacutequent car la deacuteriveacutee de la position est la vitesse

Ici le problegraveme eacutetait visible parce que nous avons reacutealiseacute toutes ces courbes sur un systegraveme reacuteel Si nous avions simuleacute ces reacutesultats lacceacuteleacuteration naurait pas eacuteteacute bruiteacutee et les courbes auraient eacuteteacute parfaites Pour impleacutementer ce PID sur notre robot il a fallu programmer en numeacuterique une deacuteriveacutee et une inteacutegrale

e PID numeacuterique et reacuteglage

Notre premier problegraveme est de programmer le terme inteacutegral Il existe une meacutethode qui consiste agrave estimer la surface entre deux eacutechantillons mais dans notre cas nous avons des problegravemes dus aux bruits et agrave la freacutequence deacutechantillonnage Alors il faut sommer toutes les erreurs depuis de deacutebut

Notre second problegraveme est de programmer le terme deacuteriveacute La meacutethode ici est de calculer la pente entre deux eacutechantillons de e Theacuteoriquement cela revient agrave faire le calcul suivant

Avec la peacuteriode deacutechantillonnage Pour faire un asservissement numeacuterique il faut impeacuterativement avoir une peacuteriode fixe Pour gagner du temps de calcul geacuteneacuteralement on inteacutegre directement dans le gain Kd

Voici un lalgorithme exemple

Ti = 0 Initialise le terme inteacutegral

for ( i=1 i lt= Nb_cycles i++ )

Init_timers (1) Initialise le timer agrave notre peacuteriode 1 ms

Y = Codeur () Stoque la valeur du codeur dans Y Rst_codeur () Remet le codeur agrave zeacutero Ud = Consigne () Mise agrave jour de la consigne e_old=e Stoque e(t-1) e = Ud - Y Calcul de lerreur Ti = Ti + e Calcul de linteacutegral Calcul du PID U = Kp e Terme proportionnel

+ Ki Ti Terme inteacutegral + Kd ( e - e_old ) Terme deacuteriveacute Moteur (U) On applique la consigne

while ( end_timer() ) On attend la fin de la peacuteriode

Pour le reacuteglage des gains Kp Ki et Kd il existe diffeacuterentes meacutethodes Ici nous lavons fait de maniegravere empirique et le reacutesultats est plutocirct bon Linconveacutenient de ces meacutethodes est quelles demandent un modegravele du systegraveme ce qui est geacuteneacuteralement dur agrave produire Il existe

aussi des composants programmables qui permettent de faire directement lasservissement numeacuterique (HCTL 1100 LM629) Ils sont exactement baseacutes sur la meacutethode preacutesenteacutee ici

Pour ce qui est du reacuteglage des correcteurs lrsquooptimal est drsquoutiliser la meacutethode de lrsquooptimum dissymeacutetrique une fois que lrsquoon agrave reacutealiseacute le modegravele du systegraveme La plus part des eacutecoles ne reacutealisent pas ce modegravele et ce limite donc agrave une correction empirique en reacutealisant des tests ou en utilisant la meacutethode Ziegler-Nichols agrave partir de la reacuteponse agrave un eacutechelon de tension

Par la suite nous rappellerons les meacutethodes de Ziegler-Nichols et de lrsquooptimum dissymeacutetrique

f Les meacutethodes de Ziegler-Nichols

Ces meacutethodes fournissent des reacuteglages pour des correcteurs de type PID (pouvant ne comporter quune action Proportionnelle une action Proportionnelle et une action Inteacutegrale ou les 3 actions simultaneacutement) dont la structure est la suivante

bull MEacuteTHODE DE ZIEGLER NICHOLS TEMPORELLE

Elle est adapteacutee aux systegravemes stables en boucle ouverte qui ont une reacuteponse apeacuteriodique La reacuteponse agrave un eacutechelon unitaire du systegraveme physique doit ecirctre enregistreacutee Diffeacuterentes caracteacuteristiques de la reacuteponse obtenue sont mesureacutees

Le modegravele approcheacute utiliseacutee par Ziegler Nichols comporte une constante de temps et un retard pur ou bien un retard pur et un inteacutegrateur

Si le systegraveme physique comporte un inteacutegrateur les mesures de a et de L demeurent disponibles sur le deacutebut de la reacuteponse

Les reacuteglages suggeacutereacutes par la meacutethode temporelle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 1a - -correcteur PI 09a 3L -

correcteur PID 12a 2L L2Concernant le raffinement des reacuteglages augmenter Kp ou diminuer Ti augment les

oscillations de la sortie

bull MEacuteTHODE DE ZIEGLER NICHOLS FREacuteQUENTIELLE

Cette meacutethode convient particuliegraverement bien aux systegravemes instables en boucle ouverte pour lesquels la meacutethode temporelle nest pas envisageable Lexpeacuterimentation se fait sur le systegraveme boucleacute avec un simple gain proportionnel qui doit ecirctre stable Le principe est de modifier la valeur du gain par essai-erreur jusquagrave atteindre la limite de stabiliteacute (pheacutenomegravene de pompage) Il reste agrave relever le gain limite K0 obtenu et agrave mesurer la peacuteriode T0 des oscillations de la reacuteponse obtenue

Les reacuteglages suggeacutereacutes par la meacutethode freacutequentielle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 05 K0 - -correcteur PI 045 K0 08 T0 -

correcteur PID 06 K0 05 T0 0125 T0

A la page Internet suivante vous trouverez un simulateur de cette meacutethode

httpwww-hadocensieginpgfrhadocateliersreglageEmpCorrReglEmpCorrDroithtml

g Meacutethode de lrsquooptimum dyssimeacutetique (voir poly MC06 Chap 5 et 8)

Cette meacutethode srsquoapplique une fois le modegravele reacutealiseacute et mis sous la forme drsquoun second ordre

et on obtient le correcteur PI

pour une surtension deacutesireacutee QdB

Q = 10^(QdB20)λ= radic(Qsup2(Qsup2-1))Δφ = arcos (1 λ)α= ((1+sin(Δφ))cos(Δφ))sup2ωN= ωQαω0= ωQradicαKP= ω0 λ KQ

4 Les microcontrocircleurs

a Avant propos

Cette fiche se veut ecirctre sous la forme dun projet Un projet non termineacute ougrave chacun peut apporter sa contribution (ameacuteliorations adaptations corrections etc)De ce fait ces pages sont ameneacutees agrave eacutevoluer et vous-mecircme pourrez participer agrave leur eacutevolution

Pourquoi avoir choisit un tel mode de travail Tout simplement parce que le sujet est vaste et que des variations sont possibles suivant lutilisation quen feront les diffeacuterentes personnes

Le but de ce projet est de reacutealiser une double asservissement de vitesse (type PID) de deux moteurs sur un seul PIC (type 16F877) Lutiliteacute majeure eacutetant de faire rouler un robot bien droit et agrave la bonne vitesse A quoi ccedila sert plus preacuteciseacutement

Avec un seul PIC ce projet permet aux roboticiens amateurs et chevronneacutes de reacutealiser facilement leur asservissement de vitesse de moteurs agrave courant continu (en geacuteneacuteral les moteurs de propulsions de leur robot mais ccedila peut ecirctre bien sucircr dautres moteurs) La commande de lasservissement pourra se faire agrave terme en liaison seacuterie (deacutejagrave fait) I2C ou par bus ISA

b Avantages

Il existe bien sucircr dautres systegravemes qui gegraverent un asservissement de vitesses Des systegravemes professionnels existent comme les LM629 Ils ont linconveacutenient decirctre cher (et ce pour un seul moteur) et relativement complexes

Pourquoi chercher un fusil pour chasser des moustiques Le double asservissement sur PIC vous coucircte le prix dun PIC soit environ 15Euro pour un 16F877 actuellement et ce pour 2 moteurs Ce double asservissement se veut relativement simple De plus vous pouvez en modifier le programme et ladapter agrave vos besoins

c Inconveacutenients

Les personnes qui auront les moyens preacutefeacutererons opter pour un systegraveme professionnel certainement pour des raisons de fiabiliteacute mais cest agrave leurs risques et peacuterils -)La puissance du PIC eacutetant limiteacutee il ne peut pas reacutealiser des PID trop rapides ou trop complexes Il y a en particulier une limitation sur le nombre dimpulsions par seconde quil est capable de geacuterer

Le langage utiliseacute eacutetant le C il faut une licence du logiciel pour pouvoir modifier et recompiler le code source c Mais le projet se veut geacuteneacuterique Une version donneacutee pourra ecirctre utiliseacute sans recompilation en respectant quelques contraintes

d Asservissement

En fait on pourrait imaginer quil suffirait denvoyer au moteur une puissance constante pour quil tourne tout le temps agrave la mecircme vitesse Ce nest pas vrai du tout Tout dabord 2 moteurs dune mecircme seacuterie nauront pas forceacutement le mecircme comportement Ensuite parce que les niveaux de tension ou dautre diffeacuterences eacutelectriques peuvent jouer Enfin parce que des influences exteacuterieures (obstacles frein meacutecanique du robot) peuvent jouer

Du coup il est tregraves difficile de faire aller un moteur agrave la vitesse voulue Parfois ce nest pas gecircnant mais ccedila peut lecirctre Un exemple classique est le robot avec 2 roues motrices type char une configuration qui est tregraves courante Mais pour que ce robot aille droit il faut que les 2 moteurs aillent exactement agrave la mecircme vitesse

La solution est de faire un asservissement Cest a dire moduler dynamiquement la puissance envoyeacute aux moteurs suivant leur vitesse mesureacutee afin dadapter celle-ci agrave ce qui est deacutesireacuteeCela implique un eacuteleacutement tregraves important pour asservir il faut un capteur de vitesse du moteur En geacuteneacuteral il sagit dun compte-tour qui enverra N impulsions (ou pas) par tour de moteur Ensuite un programme va calculer en fonction de la vitesse mesureacutee du moteur la puissance agrave utiliser

Les asservissements sont constamment en train de chercher leacutequilibre Il faut bien comprendre quils mettent un certain temps agrave latteindre et ce dernier peut aussi ecirctre instable si lasservissement est mal reacutegleacute

Lasservissement quon va utiliser ici est un classique PIDou plus preacuteciseacutement un PI car pour des raisons de vitesses de traitement la composante deacuteriveacutee est laisseacutee de coteacute (mais rien de difficile agrave rajouter)

Le PID ou Proportionnel Inteacutegrale Deacuteriveacute est une meacutethode de calcul dasservissement

Soit Kp Ki et Kd les coefficients proportionnels inteacutegrale et deacuteriveacuteSoit e lerreur Vitesse mesureacutee moins vitesse demandeacuteeSoit Ti le terme inteacutegral dabord initialiseacute agrave 0

Consigne a appliquer (PWM) = Kp e + (1Ki) (Ti += e) + Kd (e - e(t-1))

On pourrait dire des pages et des pages sur le PID et ce nest pas mon but ici Merci de vous reporter au lien ci-dessous

Pour plus de deacutetails sur le PID la page de lANCR httpwwwancrorgfichtechactionpidindexhtmChez les Fribottes la Simulation de Jean-Claude httpwwwwikifreefrWiKiFriindexphpSimulateur20de20PID

e Le pic

Le PIC est un petit microcontrocircleur assez bon marche et simple a programmer comme a utiliser

La aussi je vais pas rentrer dans les deacutetails vous pouvez vous reporter agrave la bdtech du site Fribotte et en particulier aux cours de Bigonoff

Le PIC est ici programmeacute en C voir la page Fribotte ici Lutilisation du langage C permet dalleacuteger consideacuterablement le deacuteveloppement dune application compliqueacutee

2 Module AVR

httpwwwenseirbfr~matzfravrphp

Tregraves peu de renseignement sur ce module sinon ces informations drsquoun eacutetudiant de lrsquoEnseirb

Depuis plusieurs anneacutees je participe agrave la coupe de robotique E=M6 dont lobjectif pour chaque eacutequipe est de fabriquer un robot autonome devant se conformer agrave un regraveglement Pour plus dinfos vous pouvez vous rendre sur le site de mon eacutequipe Microb Technology ou bien sur le site de Planegravete Sciences lorganisme beacuteneacutevole qui organise cette compeacutetition

Jai deacutecouvert en 2001 les microcontrocircleurs Atmel AVR auxquels je me suis beaucoup attacheacute dune part parce quils sont assez performants pour des microcontrocircleurs 8 bits mais aussi et surtout car le fameux compilateur libre GCC est capable de compiler du code C pour ces petites becirctes Il existe de surcroicirct plusieurs outils libres permettant de les programmer de les simuler etc

Le but de ce projet est donc de deacutevelopper des modules servant dinterface geacuteneacuterique avec le hardware du microcontrocircleur quel que soit la version (par exemple les UART inclus dans les AVR AtMega sont diffeacuterents de ceux preacutesents dans les petits AVR) et de deacutevelopper des modules utiles pour certaines utilisations usuelles et pas seulement pour la coupe E=M6 (codage de hamming asservissement chiffrement etc)

Vous pouvez contacter leacutequipe de deacuteveloppement agrave avr-devdroids-corporg Pour le moment aucune release na eacuteteacute faite mais le travail est deacutejagrave bien avanceacute Chaque soir un screenshot du CVS est reacutealiseacute Il peut ne pas compiler mais normalement ccedila devrait fonctionner Voici le lien

3 Modules drsquoasservissement analogique laquo Escap raquo

Nous avons essayeacute de reacutecupeacuterer les cartes de commande Escap pour moteurs Escap qui avaient eacuteteacute utiliseacutees en 96 et 98 avec succegraves

Nous les avons monteacutes sur une base roulante qui pesait en tout 74 kgVoici grosso-modo leurs avantages et leurs inconveacutenients (pour les notices techniques voir le rapport 96 ou 98)

a Avantages

Cette carte inclut directement un asservissement avec correcteur PI la commande de puissance les ponts en H

Elle est tregraves facile agrave utiliser Elle est speacutecialement conccedilue pour les moteurs Escap que nous avons donc

parfaitement adapteacutee

b Inconveacutenients

Les moteurs ne fonctionnent correctement que sous 24v Les cartes et les moteurs semblent assez gourment Les cartes nantis de gros radiateurs sont relativement encombrantes Les tachymegravetres monteacutes sur les moteurs ne donnent pas une indication de position

mais de vitesse (qui plus est en analogique)

Nous avons preacutefeacutereacute refaire la partie commande car celle de 1996 souffrait de quelques deacutefauts (cf rapport 1996)

La conversion numeacuterique analogique

Pour reacutealiser la conversion numeacuterique analogique nous avons choisit un pont agrave reacutesistance R-2R

Nous pouvons consideacuterer que chaque bit est relieacute agrave un geacuteneacuterateur ideacuteal de tension (qui deacutelivre 0v ou 5v) Par conseacutequent la reacutesistance eacutequivalente quelque soit lrsquoeacutetat des bits et quelques soit le nombre de bits vue entre la sortie et la masse sera eacutegal agrave R

La tension Vs en fonction de lrsquoeacutetat des bits sera

Ce type de CAN eacutetant tregraves classique nous nrsquoindiquerons pas les deacutemonstrations toutefois vous pourrez les trouver tregraves facilement sur Internet ou sur le Cd-rom drsquoannexes joint au dossier

Le montage de Thevenin eacutequivalent est donc

Nous avons jugeacute qursquoune discreacutetisation sur 8 bits eacutetait un peu superflu crsquoest pourquoi nous nous contenterons de 4 bits (ce qui repreacutesentent quand mecircme 16 niveaux de vitesse)

bull Lrsquoadaptation du niveau de tension

Nous avons agrave la sortie du CAN une tension qui srsquoeacutetend de 0 agrave 5v or la commande des cartes Escap ce fait entre -5v et +5v

On peut voir cette adaptation comme lrsquoajout drsquoun offset de -25v et une amplification de gain 2

Voici le montage reacutealisant cette conversion

M1 est un montage suiveur qui lsquorecopiersquo la tension aux bornes de P1 mais sous une impeacutedance constante et eacutegale agrave 4R En 1996 lrsquoeacutequipe avait brancheacute P1 directement sur M3 mais cela a pour inconveacutenient de faire varier agrave la fois lrsquooffset et la penteLe potentiomegravetre P1 permet drsquoajuster lrsquooffset (permet par conseacutequent de reacutegler lrsquoarrecirct complet de moteur) (La valeur theacuteorique de lrsquooffset est 5V (cf formule en M3))

M2 est aussi un montage suiveur Le potentiomegravetre P2 permet drsquoajuster la pente (qui doit avoir un coefficient directeur de 2) Comme M2 est connecteacute au CAN dont la reacutesistance interne est de R P2 doit ecirctre a peut precirct eacutegal agrave R de la sorte la branche aura une reacutesistance eacutequivalente de 2R

M3 Sommateur (Vs = - 2 (Ve + Voffset))

Qursquoelle valeur choisir pour R

Theacuteoriquement on peut choisir nrsquoimporte quelle valeur pour R mais en pratique si R est trop petite une intensiteacute importante serait consommeacutee sans raison et si R est trop grande la forte impeacutedance du montage le rendra tregraves sensible aux parasites (secteur moteurshellip)Ce montage a eacuteteacute testeacute et fonctionne correctement pour R=5k les amplificateurs opeacuterationnels utiliseacutes sont des LM324 mais drsquoautres seraient tout agrave fait envisageables (peu de contraintes de vitesse et de tensions de deacutechets)

4 Conclusion

Nous avons preacutefeacutereacute ne pas utiliser les cartes Escap car les moteurs ne renvoient pas une position sous forme drsquoimpulsion mais une vitesse Etant donneacute que nous avions envisageacute un repeacuterage par odomeacutetrie cela compliquait consideacuterablement la tache

Toutefois il faut savoir que cette solution a eacuteteacute testeacutee et fonctionne tregraves bien (bonne preacutecision bonne dynamique) ainsi dans le cas ougrave le repeacuterage ne se fait pas par odomeacutetrie mais des balises exteacuterieures sachez que cette solution est tregraves pratique agrave utiliser En effet pour imposer une vitesse il suffit au microcontrocircleur drsquoappliquer sur un port un mot binaire correspondant agrave la vitesse voulue hellip et crsquoest tout La carte Escap se charge du reste

5 Carte drsquoasservissement numeacuterique laquo artisanale raquo

La carte reacutealiseacutee baseacutee sur un microcontrocircleur PIC 16F877A srsquoest aveacutereacutee fonctionnelle mais les tests drsquoalgorithmes drsquoasservissement nrsquoont pas eacuteteacute effectueacutesEn effet lrsquoutilisation de cette solution neacutecessite un microcontrocircleur deacutedieacute agrave lrsquoasservissement capable de communiquer via un protocole agrave deacutefinir avec la laquo carte megravere raquo (centralisant les retours des autres capteurs du robot et agissant sur les diffeacuterents actionneurs en fonction de la strateacutegie)Or afin de limiter le nombre de microcontrocircleurs sur le robot et du fait que lrsquoon dispose drsquoun budget suffisant nous avons deacutecideacute drsquoessayer drsquoutiliser des composants speacuteciaux reacutealisant lrsquoasservissement

Le systegraveme se deacutecompose en

- Un microcontrocircleur pour appliquer la PWM asservir et commander- Une carte de puissance pour chaque moteur baseacutee sur un LMD18200- Une carte compteur drsquoimpulsions pour les codeurs

Afin de favoriser lrsquointeractiviteacute et les reacuteglages jrsquoai ajouteacute une carte afficheur LCD avec 6 boutons sur la carte microcontrocircleur

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 12: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

Maintenant nous avons tous les eacuteleacutements pour eacutecrire le principe fondamental de la meacutecanique

mrpmmmtot CCJ minus=γ

Ici compte tenu de notre application pour deacuteterminer le couple moteur neacutecessaire il faut tenir compte du nombre de moteurs

( )[ ]mrpmmcmmoteur

m CJJnb

C 1 ++= γ

Dans lrsquoapplication le nombre de moteurs srsquoeacutelegraveve agrave deux donc si lrsquoon regarde lrsquoexpression du couple moteur pour chaque phase cela donne

- phase drsquoacceacuteleacuteration

mmaccmacc

r

rpa

r

rmaccm

CP

kC

kDMJC

η

ηγ

η

1

122

1

max

2

2

timesΩtimes=

+times

times

+=

- phase de freinage

mmfrmfr

r

rpfr

r

rmfrm

CP

kC

kDMJC

η

ηγ

η

1

122

1

max

2

2

timesΩtimes=

+times

times

+=

- reacutegime permanent

mmpermmperm

r

rppermm

CP

kC

C

η

η1

21

max

timesΩtimes=

=

Maintenant que toutes les relations ont eacuteteacute mises en eacutevidence on peut regarder les reacutesultats que lrsquoon obtient avec le moteur AMAX 26G en gardant agrave lrsquoesprit que pour lapplication on considegravere que les phases drsquoacceacuteleacuteration seront preacutepondeacuterantes crsquoest pourquoi on dimensionnera les moteurs pour les phases drsquoacceacuteleacuterations

Apparemment le moteur aurait pu convenir si le reacuteducteur avait eu un rapport de reacuteduction plus faible En effet le moteur peut deacutelivrer le couple nominal neacutecessaire mais nous ne permet pas drsquoatteindre les vitesses souhaiteacutees Dans un premier temps nous avions revu nos speacutecifications agrave la baisses envisageacute la meilleure faccedilon de commander le moteur de faccedilon agrave ce que lrsquoon deacutemarre toujours en suivant la limite de puissance imposeacutee par le collecteur meacutecanique Ceci nous aurait permis drsquoavoir la meilleure dynamique du moteur La conseacutequence de ce type de fonctionnement aurait eacuteteacute un eacutechauffement excessif et un vieillissement preacutematureacute du moteur Donc les risques de casse auraient eacuteteacute multiplieacutes

Suite agrave un incident durant les phases de tests un des moteurs crsquoest vu endommageacutes crsquoest pourquoi il agrave fallu dimensionner drsquoautres moteursNous avons donc repris nos calculs avec un nouveau rapport de reacuteduction ce qui nous donne les reacutesultats suivants

Nous avons donc rechercheacute un moteur qui aurait pu avoir ses caracteacuteristiques agrave savoir - Couple nominal 34 mNm- Vitesse nominale 3342 trmin- Puissance nominale 16 W- Alimentation 24V- Reacuteducteur 1 14

Ce qui nous donnerait en sortie de reacuteducteur - Couple nominal 033 Nm- Vitesse nominale 239 trmin

Nous avons eu beaucoup de mal agrave trouver un moteur qui reacuteponde agrave ses exigences de maniegravere preacutecise et qui ait des caracteacuteristiques geacuteomeacutetriques compatibles avec les speacutecifications meacutecaniques Ces speacutecifications meacutecaniques eacutetant contraignantes compte tenu de la strateacutegie envisageacutee

Crsquoest pourquoi nous avons seacutelectionneacute un moteur un peu surdimensionneacute pour notre application toutefois cela va dans le bon sens comme nous sommes obligeacutes de mettre un renvoi drsquoangle ce qui va augmenter les pertes et lrsquoinertie Donc ce surdimensionnement devrait palier aux impreacutevus et combler nos neacutegligences

c Choix possibles

Gracircce aux informations qui preacutecegravedent on a pu choisir 3 Reacutefeacuterences bull Un motoreacuteducteur de chez MDP-Motor avec une vitesse en charge de 309 trmin-1 et

un couple de 057 Nm reacutefeacuterence AMAX32GHPPLG42S prix unitaire TTC 310 euro (avec -20 en tant que participant agrave la Coupe) disponibles sous 12 semaines longueur sans arbre de 142 mm

bull Un motoreacuteducteur de chez MDP-Motor avec une vitesse en charge de 559 trmin-1 et un couple de 060 Nm reacutefeacuterence RE035GPLG52 prix unitaire TTC 337 euro (avec -20 en tant que participant agrave la Coupe) disponibles de suite longueur sans arbre de 144 mm

bull Un motoreacuteducteur de chez Faulhaber avec une puissance de 45 W reacutefeacuterences moteur 2657 reacuteducteur seacuterie 26 Rr =14) prix unitaire TTC 507 euro disponibles de suite longueur sans arbre 125 mm

Voir en annexes pour les caracteacuteristiques de ces reacutefeacuterencesAux vues des longueurs obtenues il nous est rapidement apparu qursquoune transmission

directe Motoreacuteducteur Roue nrsquoeacutetait pas envisageable du fait drsquoune longueur totale minimum de (125 + 30) 2 = 310 mm avec 125 la longueur drsquoun motoreacuteducteur 30 la largeur estimeacutee drsquoune roue Nous avons donc opteacute pour une solution agrave renvoi drsquoangle

d Choix deacutefinitif

Gracircce aux caracteacuteristiques preacuteceacutedentes nous avons choisi les RE035GPLG52 du fait de leurs disponibiliteacute caracteacuteristiques et prix En ce qui concerne la transmission par renvoi drsquoangle nous avons opteacute pour des systegravemes deacutejagrave tout fait qui permettent une plus grande preacutecision un meilleur rendement et un meilleur rapport qualiteacute prix que les montages artisanaux Voici la reacutefeacuterence que nous avons retenue

bull Reacutefeacuterence 748-437 chez Radiospares ou B332312 chez HPCeurope avec les caracteacuteristiques suivantes Rr = 1 C max = 068 Nm V max = 1500 trmin-1 η = 094 prix RS 5750 euro piegravece et prix HPC 52 euro piegravece (avec -10 en tant que participant agrave la Coupe) (Voir les autres caracteacuteristiques en annexes)Pour des raisons de disponibiliteacute nous avons commandeacute ces 2 piegraveces chez

Radiospares En ce qui concerne la liaison entre lrsquoarbre moteur et lrsquoarbre de la transmission nous

avons deacutecideacute drsquousiner un accouplement rigide dont les plans se trouvent en annexes Du coteacute moteur le blocage en rotation est assureacute par une vis de pression qui se trouve dans la gorge preacutevue initialement pour la clavette De lrsquoautre coteacute nous avons usineacute un meacuteplat sur lrsquoarbre du reacuteducteur meacuteplat sur lequel vient appuyer une autre vis de pression

3 Les supports des moteurs

A lrsquoorigine nous avions penseacute mettre les moteurs et les roues coaxiaux nous avions donc imagineacute un systegraveme de bride qui permettrait de bloquer le moteur selon 2 axes de translation et 2 axes de rotation gracircce agrave 2 vis de serrage associeacutee agrave une eacutequerre qui permettait le blocage selon le dernier axe de translation et de rotation Le tout eacutetait fixeacute sur une plaque de fond qui constituerait la base du robot

Voici donc a quoi ressembler cette bride (pour un moteur)

Bride de maintien pour moteur de faible longueur

Bride monteacutee sur la plaque de fond avec un moteur

Ensuite lorsque nous sommes passeacutes agrave la solution avec renvoi drsquoangle nous avons deacutecideacute drsquousiner une piegravece certes complexe mais qui proposait une universaliteacute notamment au niveau des diffeacuterentes positions des moteurs (verticale et horizontale) aspect qui satisfait pleinement au cahier des charges Cette piegravece que par la suite nous appellerons Bloc Moteur doit permettre la mise et le maintien en position du motoreacuteducteur la mise et le maintien en position du reacuteducteur la fixation de lrsquoensemble au sein du robot notamment sur la plaque de fond

Apregraves une petite eacutetude nous sommes arriveacutes agrave une piegravece de ce type

Bloc moteur pour la solution avec renvoi dangle

Cette nouvelle piegravece agrave de nombreux avantages

bull Elle nous permet de pouvoir incorporer le renvoi drsquoangle bull De maintenir les piegraveces entre-elles et de limiter les efforts directs sur les

diffeacuterents eacuteleacutementsbull Drsquoecirctre installeacute agrave lrsquohorizontale ou agrave la verticale

Effectivement lors de la conception du bloc moteur nous avons penseacute aux anneacutees futures et nous avons donc preacutevu un montage des moteurs agrave la verticale ou agrave lrsquohorizontale

En position verticale

En position horizontale

4 Les roues

Comme vu lors de la veille technologique les chenilles ont quasiment disparu de la compeacutetition Ceci est ducirc au fait que cette technologie est difficile agrave mettre en œuvre et que les regraveglements proposent des aires de jeux totalement planes

Or cette anneacutee un fosseacute fait son apparition dans le regraveglement Ce fosseacute de 36 mm de profondeur vient seacuteparer deux aires de jeu Une neacutecessiteacute de traverser le fosseacute apparaicirct donc pour aller renverser les quilles de lrsquoadversaire

Deux solutions sont alors possibles bull Traverser sur le pont aleacuteatoirebull Traverser le fosseacute

Si nous choisissons de traverser par le pont lrsquoideacutee de garder notre systegraveme de roues est correcte par contre un systegraveme agrave chenille permettrait de passer par le fosseacute

Apregraves reacuteflexion de lrsquoeacutequipe PR et des membres de la Coupe E=M6 la solution de traverser par le pont est retenue Ce qui nous a conduit tout droit vers la solution agrave roues

Les roues utiliseacutees sont des roues de roller de diamegravetre 80mm et drsquoune largeur de 22mm Ces roues sont relieacutees agrave lrsquoarbre drsquoun renvoi drsquoangle par lrsquointermeacutediaire drsquoun accouplement en aluminium

5 La base

Pour la base du robot il nous a parut indispensable de dimensionner la plaque de fond en eacutepaisseur De plus afin de maintenir la solution de modulariteacute de lrsquoensemble moteurs ndash roues nous avons deacutecideacute de fixer les deux supports moteurs sur un platine qui sera elle-mecircme fixeacutee agrave la plaque de fond du robot

Premiegraverement nous avons effectueacute un dimensionnement succinct de la platine

a Reacuteaction drsquoappui

0=sum Fx OK

0=sum Fy qLRbRaorRbRaqL210 =+=++minus

qLRa21=

AB = 027 m = L

P = mg P = 15 x 10 = 150 N

Q = 150 N270 mm soit q = 555 Nm

Bille folle

Accouplement

Bloc moteur

Renvoi drsquoangle

Platine

Base du robot

Motoreacuteducteur

Roue

b Moment de flexion

0 =sum= cMMf

02

sup2 =minus+ RaxqxMf

sup221

21 qxqLxMf minus=

c Flegraveche

)( xMfEIY =

sup221

21 qxqLxEIY minus=

161sup2

41 3 CqxqLxEIY +minus=

21241

121 43 CxCqxqLxEIY ++minus=

d Conditions aux limites

Y (x=0) = 0 C2 = 0

Y (x=L) = 0 012412

44

=+minus LCqLqL

241

4qLLC =

241

3qLC =

On obtient donc

xqLqxqLxEIY 343

241

241

121 +minus=

De mecircme

+minus=

242412

343 xLxLxEIqY

On sait que bull E = 210 000 10^6bull Y = 1 10^-3 mbull Q = 555 Nmbull L = 027 m

bull12

3bhI = b = 006 m

+

minus

=24

22416

128

343 LL

LLL

EYqI

36

4

0010102100000601052155512timestimes

timestimes=minus

h

Et enfin on trouve h lrsquoeacutepaisseur de la platine h= 43 mm

Apregraves reacuteflexion nous nous sommes rendu compte que ce calcul nrsquoeacutetait pas rigoureux car nous avons consideacutereacute la theacuteorie des poutres or dans notre cas nous ne pouvons satisfaire cette theacuteorie (Longueur de la section = 10 x la largeur de la section)

Il nous faut donc utiliser un modegravele plus preacutecis crsquoest pourquoi nous avons deacutecideacute de faire un calcul par eacuteleacutements finis sous Ideacuteas Ainsi nous trouvons une eacutepaisseur h = 32 mm

Il nous faut donc une platine de plus de 3 mm Etant donneacute que la platine sera solidairement fixeacutee agrave la base du robot nous avons deacutecideacute de prendre une eacutepaisseur de platine de 2 mm et une eacutepaisseur de base de robot de 2 mm Nous obtenons donc une eacutepaisseur totale de 4 mm Ainsi nous devrions avoir sous une charge de 15 kg moins drsquoun millimegravetre de flexion de la base du robot

6 Reacutesultats

Assemblage en position horizontale

Vue eacuteclateacutee en position verticale

Photo de lrsquoassemblage roues ndash blocs moteurs ndash moteurs ndash platine

Partie C Lrsquoeacutelectronique20 Les batteries

Afin de pouvoir choisir les batteries approprieacutees agrave notre application nous devons dans un premier temps faire une estimation de la consommation drsquoeacutenergie totale avec les pointes de courant envisageacutees dans notre robotIl est agrave noter que nous ne connaissons pas encore en deacutetail tous les eacuteleacutements annexes qui seront implanteacutes dans le robot comme par exemple les capteurs et actionneurs diverses qui seront choisis en fonction des objectifs technologiques atteints ou non de lrsquoassociation et de la strateacutegie finaleDans le but de pouvoir utiliser agrave nouveau dans lrsquoavenir notre base roulante nous avons choisi de surestimer les besoins en eacutenergie de sorte agrave ne pas ecirctre pris au deacutepourvu

La consommation pourrait se deacutecomposer ainsi - 2 moteurs de 24V sous 21A soit 1008 Watts pendant 100 du temps- 3 actionneurs de 21 Watts chacun soit 63 Watts pendant 50 du temps- 3A pour lrsquoeacutelectronique sous 5V soit 15 Watts pendant 100 du temps (Asservissement carte de commandes capteurs)

Ce qui nous fait au total une consommation maximale ~180 WattsLa consommation permanente devrait ecirctre ~147 Watts permanents il faut donc que les batteries puissent deacutebiter un courant de ~6 A sous 24 V durant le fonctionnement du robot

Apregraves une longue recherche on a pu reacutealiser le tableau comparatif des batteries suivant

typeDensiteacute

deacutenergie (WhKg)

Densiteacute deacutenergie (WhL)

auto-deacutecharge (mois)

voltage dune cellule (V)

temps de charge rapide

plomb 35 111 5 agrave 10 2 8h agrave 15h

NiCd (Nickel Cadnium) 50 94 10 agrave 20 12 1h30min

NiMH (Nickel Metal Hydride) 80 135 20 agrave 30 13 2h agrave 4h

Lithium Ion 100 196 5 agrave 10 36 2h agrave 4h

Lithium polymer 150 200 5 agrave 10 36 2h agrave 4h

AlKaline rechargeable 80 15 2h agrave 3h

type

cycle de charge-deacutecharge avant

que capaciteacute passe de 100 agrave

80

Courant max Courant max pic effet meacutemoire estimation

(euroWh) prixcycles

plomb 200 agrave 300 02C 05C M 0895 0003

NiCd (Nickel Cadnium) 1500 1C 20C H 416 0003

NiMH (Nickel Metal Hydride) 300 agrave 500 05C 5C L 2 0004

Lithium Ion 500 agrave 1000 1C 2C L 8 0008

Lithium polymer 300 agrave 500 1C 2C agrave 5C L 32 0006

AlKaline rechargeable 50 02C 05C H 178 0036

Effet meacutemoire L (Low) M (Medium) H (High)Courant max C signifie capaciteacute par exemple une batterie qui peut deacutelivrer un courant max de 1C de 4Ah pourra donc deacutelivrer 4A au maximum sans risque de deacuteteacuterioration

Nous nous sommes inteacuteresseacutes au courant maximum et au temps de charge rapide pour notre choix de batteriesLe type de batterie qui semble le plus approprieacute pour nous est le type Nickel-Cadnium parfaitement adapteacute au pic drsquoappel de courant que provoquent des moteurs pouvant supporter des charges rapides en 1h30min seulement afin de devoir preacutevoir trop de jeux de batteries diffeacuterents

Les batteries LI-Ion ou LI-Polymer preacutesentent une densiteacute eacutenergeacutetique tregraves inteacuteressante mais leur prix est beaucoup plus eacuteleveacute agrave lrsquoachat et de plus dans notre application roulant sur un sol peu accidenteacute la masse pouvant ecirctre transporteacutee est suffisante pour le type NiCd

Les batteries LI-Ion ou LI-Polymer sont plus adapteacutees agrave lrsquoaeacuteromodeacutelisme ou au petit appareil eacutelectroniqueQuant aux batteries au plomb qui sont vraiment bon marcheacute le courant maximum supporteacute est trop faible est supposerait drsquoavoir une forte capaciteacute

Nous voulons avoir une autonomie de 30 minutes il nous faut donc une eacutenergie de 735 WhOr sous 24 V les batteries doivent avoir une capaciteacute de ~3 AhComme les batteries NiCd peuvent deacutebiter un courant maximum de 1C (une fois leur capaciteacute) nous devons donc prendre des batteries de 6Ah sous 24 V ce qui nous donnera une autonomie de 1 heure

Il faudra donc soit acheter un bloc accumulateur NiCd de 24 V 6 Ah srsquoil existe dans le commerce soit le reacutealiser nous mecircme en assemblant diffeacuterents eacuteleacutements

Rappelons que lrsquoassociation en seacuterie permet drsquoadditionner les tensions des eacuteleacutements associeacutes et que lrsquoassociation en parallegravele permet drsquoadditionner les courants deacutebiteacutes

Par exemple des eacuteleacutements de 12 V chacun pour 3 Ah srsquoassocieraient ainsi

Soit deux seacuteries de 20 eacuteleacutements eacutequivalentes agrave 24 V et faisant une capaciteacute de 3 Ah chacune

Il est possible de reacutepartir les accumulateurs en diffeacuterents paquets pour faciliter le rangement dans le robot ou reacutepartir la masse ou eacuteventuellement trouver des packs dans le commerce

Dans le cas de lrsquoUV PR le choix des batteries reste pour le moment sur les NiCd mais pour les essais pratiques on utilisera des batteries au plomb que lrsquoon possegravede deacutejagrave drsquoautant plus que les essais sont reacutealiseacutes avec les moteurs de propulsion et lrsquoasservissement seul ce qui

neacutecessite un deacutebit de courant de 24105 = 4375 A sur 2 batteries soit asymp2187 A

Comme les batteries au plomb peuvent deacutebiter 02C il nous en faudrait des de asymp 109 Ah

Or les essais de la base roulante ne seront que de courtes dureacutees et lrsquoon se contentera donc drsquoutiliser des batteries de 6 Ah pour des raisons de volume mecircme si elles ne sont pas vraiment bien dimensionneacutees

21 La commande des moteurs

Dans un premier temps nous verrons un bref reacutecapitulatif des cartes et modules drsquoasservissement du commerce

Pour la commande les moteurs plusieurs solutions ont eacuteteacute envisageacutees - Un asservissement lsquotout faitrsquo analogique modules laquo Escap raquo- Une solution lsquoartisanalersquo carte avec asservissement numeacuterique- Un asservissement lsquotout faitrsquo numeacuterique circuits laquo LM629 raquo

a Comparatifs des modules drsquoasservissement et calcul des correcteurs

Veille technologique sur les systegravemes drsquoasservissement utiliseacutes par les diffeacuterentes eacutecoles de la coupe E= M6

Le but de cette partie est drsquoeacutetudier les principales techniques drsquoasservissement utiliseacutees par les eacutecoles de la Coupe E=M6 Ce document est loin drsquoecirctre exhaustif et servira de base agrave compleacuteter et actualiser pour les semestres et eacutequipes prochaines

Apregraves une eacutetude sur plus drsquoune trentaine drsquoeacutecoles il ressort trois formes drsquoasservissement la plus utiliseacutee agrave 85 est du type PID en majoriteacute reacuteduit au PI ensuite viennent les microcontrocircleurs PIC associeacutes au PID et les modules AVR nous allons par la suite deacutetailler ces trois solutions Il existe eacutegalement des systegravemes de controcircle dits agrave retour drsquoeacutetat jamais utiliseacutes jusqursquoagrave preacutesent pour la Coupe crsquoest pourquoi nous ne deacutevelopperons pas son approche

3 Systegraveme PID

httpwwwancrorgfichtechactionpidindexhtm

a Principe

Pour pouvoir tester un asservissement il faut dabord reacutealiser une plate-forme de deacuteveloppement le plus geacuteneacuteralement du type suivant Mais pour commencer un brin de theacuteorie illustreacute par des exemples Le scheacutema de principe est repreacutesenteacute ci-dessous

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

Nous avons bien un scheacutema en boucle fermeacutee puisque la sortie du systegraveme est reacuteinjecteacutee dans lentreacutee Les trois blocs bleus correspondent chacun agrave une fonctionnaliteacute Ki est le coefficient inteacutegral Kp le coefficient proportionnel et Kd le coefficient deacuteriveacute Chacun de ces coefficients a une fonctionnaliteacute bien preacutecise Commenccedilons par le plus simple le proportionnel

b Asservissement P

Lasservissement proportionnel est essentiel au fonctionnement du PID Il permet essentiellement de donner de la puissance au moteur Voici quelques reacutesultats dexpeacuterimentations avec Ki=0 et Kd=0

La courbe noire repreacutesente la consigne que lon deacutesire atteindre (Ud) cest un eacutechelon de valeur 32 La courbe bleue repreacutesente la vitesse reacuteelle du systegraveme (Y) Comme vous pouvez le constater plus Kp est grand plus le systegraveme converge vite vers sa valeur finale Mais en contrepartie pour des valeurs de Kp trop grandes le systegraveme oscille Mais lagrave nest pas notre plus gros problegraveme en effet sur ces courbes on voit nettement que la vitesse du moteur natteint jamais la vitesse deacutesireacutee Cest ce que lon appelle lerreur statique elle correspond agrave la diffeacuterence entre la vitesse reacuteelle et la vitesse deacutesireacutee en reacutegime eacutetablie (une fois que le systegraveme sest stabiliseacute) Pour compenser cette erreur statique on rajoute le terme inteacutegral

c Asservissement PI

Le correcteur inteacutegral sert principalement agrave supprimer lerreur statique Lideacutee principale est de charger ou inteacutegrer lerreur depuis le deacutebut et dajouter cette erreur agrave la consigne jusquagrave ce quelle devienne nulle Lorsque cette erreur est nulle le terme inteacutegral se stabilise et il compense parfaitement lerreur entre la consigne et la vitesse reacuteelle Deacutemonstration en image

On voit cette fois-ci que le terme inteacutegral a bien fonctionneacute et que lerreur statique est nulle On constate aussi que plus le gain Ki est grand plus le systegraveme converge vite En revanche plus Ki est grand plus le systegraveme oscille et plus le deacutepassement est grand Sur des asservissements en position le terme deacuteriveacute permet de diminuer le deacutepassement et les oscillations Nous allons voir que dans notre cas nous avons quelques problegravemes

d Asservissement PID ou agrave avance de phase

On a donc rajouteacute le terme deacuteriveacute comme tout bon livre dautomatique le preacuteconise et voici les reacutesultats

Cette fois ci jai choisi de repreacutesenter la tension appliqueacutee au moteur (U) le problegraveme est bien plus flagrant ici Vous voyez que lorsque lon ajoute le terme deacuteriveacute la commande est extrecircmement bruiteacutee En reacutealiteacute on somme agrave la commande la deacuteriveacutee de la vitesse reacuteelle que lon multiplie par un gain Kd La deacuteriveacutee dune vitesse est une acceacuteleacuteration cela signifie que lon amplifie tous les bruits dacceacuteleacuteration et en plus on les multiplient par un gain Kd Donc rajoute du bruit amplifieacute dans la commande Alors pourquoi mettent t-ils ce terme deacuteriveacutee dans les livres Simplement parce que ce bruit est typique des asservissement en vitesse Sur des asservissements en position ce problegraveme est moins freacutequent car la deacuteriveacutee de la position est la vitesse

Ici le problegraveme eacutetait visible parce que nous avons reacutealiseacute toutes ces courbes sur un systegraveme reacuteel Si nous avions simuleacute ces reacutesultats lacceacuteleacuteration naurait pas eacuteteacute bruiteacutee et les courbes auraient eacuteteacute parfaites Pour impleacutementer ce PID sur notre robot il a fallu programmer en numeacuterique une deacuteriveacutee et une inteacutegrale

e PID numeacuterique et reacuteglage

Notre premier problegraveme est de programmer le terme inteacutegral Il existe une meacutethode qui consiste agrave estimer la surface entre deux eacutechantillons mais dans notre cas nous avons des problegravemes dus aux bruits et agrave la freacutequence deacutechantillonnage Alors il faut sommer toutes les erreurs depuis de deacutebut

Notre second problegraveme est de programmer le terme deacuteriveacute La meacutethode ici est de calculer la pente entre deux eacutechantillons de e Theacuteoriquement cela revient agrave faire le calcul suivant

Avec la peacuteriode deacutechantillonnage Pour faire un asservissement numeacuterique il faut impeacuterativement avoir une peacuteriode fixe Pour gagner du temps de calcul geacuteneacuteralement on inteacutegre directement dans le gain Kd

Voici un lalgorithme exemple

Ti = 0 Initialise le terme inteacutegral

for ( i=1 i lt= Nb_cycles i++ )

Init_timers (1) Initialise le timer agrave notre peacuteriode 1 ms

Y = Codeur () Stoque la valeur du codeur dans Y Rst_codeur () Remet le codeur agrave zeacutero Ud = Consigne () Mise agrave jour de la consigne e_old=e Stoque e(t-1) e = Ud - Y Calcul de lerreur Ti = Ti + e Calcul de linteacutegral Calcul du PID U = Kp e Terme proportionnel

+ Ki Ti Terme inteacutegral + Kd ( e - e_old ) Terme deacuteriveacute Moteur (U) On applique la consigne

while ( end_timer() ) On attend la fin de la peacuteriode

Pour le reacuteglage des gains Kp Ki et Kd il existe diffeacuterentes meacutethodes Ici nous lavons fait de maniegravere empirique et le reacutesultats est plutocirct bon Linconveacutenient de ces meacutethodes est quelles demandent un modegravele du systegraveme ce qui est geacuteneacuteralement dur agrave produire Il existe

aussi des composants programmables qui permettent de faire directement lasservissement numeacuterique (HCTL 1100 LM629) Ils sont exactement baseacutes sur la meacutethode preacutesenteacutee ici

Pour ce qui est du reacuteglage des correcteurs lrsquooptimal est drsquoutiliser la meacutethode de lrsquooptimum dissymeacutetrique une fois que lrsquoon agrave reacutealiseacute le modegravele du systegraveme La plus part des eacutecoles ne reacutealisent pas ce modegravele et ce limite donc agrave une correction empirique en reacutealisant des tests ou en utilisant la meacutethode Ziegler-Nichols agrave partir de la reacuteponse agrave un eacutechelon de tension

Par la suite nous rappellerons les meacutethodes de Ziegler-Nichols et de lrsquooptimum dissymeacutetrique

f Les meacutethodes de Ziegler-Nichols

Ces meacutethodes fournissent des reacuteglages pour des correcteurs de type PID (pouvant ne comporter quune action Proportionnelle une action Proportionnelle et une action Inteacutegrale ou les 3 actions simultaneacutement) dont la structure est la suivante

bull MEacuteTHODE DE ZIEGLER NICHOLS TEMPORELLE

Elle est adapteacutee aux systegravemes stables en boucle ouverte qui ont une reacuteponse apeacuteriodique La reacuteponse agrave un eacutechelon unitaire du systegraveme physique doit ecirctre enregistreacutee Diffeacuterentes caracteacuteristiques de la reacuteponse obtenue sont mesureacutees

Le modegravele approcheacute utiliseacutee par Ziegler Nichols comporte une constante de temps et un retard pur ou bien un retard pur et un inteacutegrateur

Si le systegraveme physique comporte un inteacutegrateur les mesures de a et de L demeurent disponibles sur le deacutebut de la reacuteponse

Les reacuteglages suggeacutereacutes par la meacutethode temporelle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 1a - -correcteur PI 09a 3L -

correcteur PID 12a 2L L2Concernant le raffinement des reacuteglages augmenter Kp ou diminuer Ti augment les

oscillations de la sortie

bull MEacuteTHODE DE ZIEGLER NICHOLS FREacuteQUENTIELLE

Cette meacutethode convient particuliegraverement bien aux systegravemes instables en boucle ouverte pour lesquels la meacutethode temporelle nest pas envisageable Lexpeacuterimentation se fait sur le systegraveme boucleacute avec un simple gain proportionnel qui doit ecirctre stable Le principe est de modifier la valeur du gain par essai-erreur jusquagrave atteindre la limite de stabiliteacute (pheacutenomegravene de pompage) Il reste agrave relever le gain limite K0 obtenu et agrave mesurer la peacuteriode T0 des oscillations de la reacuteponse obtenue

Les reacuteglages suggeacutereacutes par la meacutethode freacutequentielle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 05 K0 - -correcteur PI 045 K0 08 T0 -

correcteur PID 06 K0 05 T0 0125 T0

A la page Internet suivante vous trouverez un simulateur de cette meacutethode

httpwww-hadocensieginpgfrhadocateliersreglageEmpCorrReglEmpCorrDroithtml

g Meacutethode de lrsquooptimum dyssimeacutetique (voir poly MC06 Chap 5 et 8)

Cette meacutethode srsquoapplique une fois le modegravele reacutealiseacute et mis sous la forme drsquoun second ordre

et on obtient le correcteur PI

pour une surtension deacutesireacutee QdB

Q = 10^(QdB20)λ= radic(Qsup2(Qsup2-1))Δφ = arcos (1 λ)α= ((1+sin(Δφ))cos(Δφ))sup2ωN= ωQαω0= ωQradicαKP= ω0 λ KQ

4 Les microcontrocircleurs

a Avant propos

Cette fiche se veut ecirctre sous la forme dun projet Un projet non termineacute ougrave chacun peut apporter sa contribution (ameacuteliorations adaptations corrections etc)De ce fait ces pages sont ameneacutees agrave eacutevoluer et vous-mecircme pourrez participer agrave leur eacutevolution

Pourquoi avoir choisit un tel mode de travail Tout simplement parce que le sujet est vaste et que des variations sont possibles suivant lutilisation quen feront les diffeacuterentes personnes

Le but de ce projet est de reacutealiser une double asservissement de vitesse (type PID) de deux moteurs sur un seul PIC (type 16F877) Lutiliteacute majeure eacutetant de faire rouler un robot bien droit et agrave la bonne vitesse A quoi ccedila sert plus preacuteciseacutement

Avec un seul PIC ce projet permet aux roboticiens amateurs et chevronneacutes de reacutealiser facilement leur asservissement de vitesse de moteurs agrave courant continu (en geacuteneacuteral les moteurs de propulsions de leur robot mais ccedila peut ecirctre bien sucircr dautres moteurs) La commande de lasservissement pourra se faire agrave terme en liaison seacuterie (deacutejagrave fait) I2C ou par bus ISA

b Avantages

Il existe bien sucircr dautres systegravemes qui gegraverent un asservissement de vitesses Des systegravemes professionnels existent comme les LM629 Ils ont linconveacutenient decirctre cher (et ce pour un seul moteur) et relativement complexes

Pourquoi chercher un fusil pour chasser des moustiques Le double asservissement sur PIC vous coucircte le prix dun PIC soit environ 15Euro pour un 16F877 actuellement et ce pour 2 moteurs Ce double asservissement se veut relativement simple De plus vous pouvez en modifier le programme et ladapter agrave vos besoins

c Inconveacutenients

Les personnes qui auront les moyens preacutefeacutererons opter pour un systegraveme professionnel certainement pour des raisons de fiabiliteacute mais cest agrave leurs risques et peacuterils -)La puissance du PIC eacutetant limiteacutee il ne peut pas reacutealiser des PID trop rapides ou trop complexes Il y a en particulier une limitation sur le nombre dimpulsions par seconde quil est capable de geacuterer

Le langage utiliseacute eacutetant le C il faut une licence du logiciel pour pouvoir modifier et recompiler le code source c Mais le projet se veut geacuteneacuterique Une version donneacutee pourra ecirctre utiliseacute sans recompilation en respectant quelques contraintes

d Asservissement

En fait on pourrait imaginer quil suffirait denvoyer au moteur une puissance constante pour quil tourne tout le temps agrave la mecircme vitesse Ce nest pas vrai du tout Tout dabord 2 moteurs dune mecircme seacuterie nauront pas forceacutement le mecircme comportement Ensuite parce que les niveaux de tension ou dautre diffeacuterences eacutelectriques peuvent jouer Enfin parce que des influences exteacuterieures (obstacles frein meacutecanique du robot) peuvent jouer

Du coup il est tregraves difficile de faire aller un moteur agrave la vitesse voulue Parfois ce nest pas gecircnant mais ccedila peut lecirctre Un exemple classique est le robot avec 2 roues motrices type char une configuration qui est tregraves courante Mais pour que ce robot aille droit il faut que les 2 moteurs aillent exactement agrave la mecircme vitesse

La solution est de faire un asservissement Cest a dire moduler dynamiquement la puissance envoyeacute aux moteurs suivant leur vitesse mesureacutee afin dadapter celle-ci agrave ce qui est deacutesireacuteeCela implique un eacuteleacutement tregraves important pour asservir il faut un capteur de vitesse du moteur En geacuteneacuteral il sagit dun compte-tour qui enverra N impulsions (ou pas) par tour de moteur Ensuite un programme va calculer en fonction de la vitesse mesureacutee du moteur la puissance agrave utiliser

Les asservissements sont constamment en train de chercher leacutequilibre Il faut bien comprendre quils mettent un certain temps agrave latteindre et ce dernier peut aussi ecirctre instable si lasservissement est mal reacutegleacute

Lasservissement quon va utiliser ici est un classique PIDou plus preacuteciseacutement un PI car pour des raisons de vitesses de traitement la composante deacuteriveacutee est laisseacutee de coteacute (mais rien de difficile agrave rajouter)

Le PID ou Proportionnel Inteacutegrale Deacuteriveacute est une meacutethode de calcul dasservissement

Soit Kp Ki et Kd les coefficients proportionnels inteacutegrale et deacuteriveacuteSoit e lerreur Vitesse mesureacutee moins vitesse demandeacuteeSoit Ti le terme inteacutegral dabord initialiseacute agrave 0

Consigne a appliquer (PWM) = Kp e + (1Ki) (Ti += e) + Kd (e - e(t-1))

On pourrait dire des pages et des pages sur le PID et ce nest pas mon but ici Merci de vous reporter au lien ci-dessous

Pour plus de deacutetails sur le PID la page de lANCR httpwwwancrorgfichtechactionpidindexhtmChez les Fribottes la Simulation de Jean-Claude httpwwwwikifreefrWiKiFriindexphpSimulateur20de20PID

e Le pic

Le PIC est un petit microcontrocircleur assez bon marche et simple a programmer comme a utiliser

La aussi je vais pas rentrer dans les deacutetails vous pouvez vous reporter agrave la bdtech du site Fribotte et en particulier aux cours de Bigonoff

Le PIC est ici programmeacute en C voir la page Fribotte ici Lutilisation du langage C permet dalleacuteger consideacuterablement le deacuteveloppement dune application compliqueacutee

2 Module AVR

httpwwwenseirbfr~matzfravrphp

Tregraves peu de renseignement sur ce module sinon ces informations drsquoun eacutetudiant de lrsquoEnseirb

Depuis plusieurs anneacutees je participe agrave la coupe de robotique E=M6 dont lobjectif pour chaque eacutequipe est de fabriquer un robot autonome devant se conformer agrave un regraveglement Pour plus dinfos vous pouvez vous rendre sur le site de mon eacutequipe Microb Technology ou bien sur le site de Planegravete Sciences lorganisme beacuteneacutevole qui organise cette compeacutetition

Jai deacutecouvert en 2001 les microcontrocircleurs Atmel AVR auxquels je me suis beaucoup attacheacute dune part parce quils sont assez performants pour des microcontrocircleurs 8 bits mais aussi et surtout car le fameux compilateur libre GCC est capable de compiler du code C pour ces petites becirctes Il existe de surcroicirct plusieurs outils libres permettant de les programmer de les simuler etc

Le but de ce projet est donc de deacutevelopper des modules servant dinterface geacuteneacuterique avec le hardware du microcontrocircleur quel que soit la version (par exemple les UART inclus dans les AVR AtMega sont diffeacuterents de ceux preacutesents dans les petits AVR) et de deacutevelopper des modules utiles pour certaines utilisations usuelles et pas seulement pour la coupe E=M6 (codage de hamming asservissement chiffrement etc)

Vous pouvez contacter leacutequipe de deacuteveloppement agrave avr-devdroids-corporg Pour le moment aucune release na eacuteteacute faite mais le travail est deacutejagrave bien avanceacute Chaque soir un screenshot du CVS est reacutealiseacute Il peut ne pas compiler mais normalement ccedila devrait fonctionner Voici le lien

3 Modules drsquoasservissement analogique laquo Escap raquo

Nous avons essayeacute de reacutecupeacuterer les cartes de commande Escap pour moteurs Escap qui avaient eacuteteacute utiliseacutees en 96 et 98 avec succegraves

Nous les avons monteacutes sur une base roulante qui pesait en tout 74 kgVoici grosso-modo leurs avantages et leurs inconveacutenients (pour les notices techniques voir le rapport 96 ou 98)

a Avantages

Cette carte inclut directement un asservissement avec correcteur PI la commande de puissance les ponts en H

Elle est tregraves facile agrave utiliser Elle est speacutecialement conccedilue pour les moteurs Escap que nous avons donc

parfaitement adapteacutee

b Inconveacutenients

Les moteurs ne fonctionnent correctement que sous 24v Les cartes et les moteurs semblent assez gourment Les cartes nantis de gros radiateurs sont relativement encombrantes Les tachymegravetres monteacutes sur les moteurs ne donnent pas une indication de position

mais de vitesse (qui plus est en analogique)

Nous avons preacutefeacutereacute refaire la partie commande car celle de 1996 souffrait de quelques deacutefauts (cf rapport 1996)

La conversion numeacuterique analogique

Pour reacutealiser la conversion numeacuterique analogique nous avons choisit un pont agrave reacutesistance R-2R

Nous pouvons consideacuterer que chaque bit est relieacute agrave un geacuteneacuterateur ideacuteal de tension (qui deacutelivre 0v ou 5v) Par conseacutequent la reacutesistance eacutequivalente quelque soit lrsquoeacutetat des bits et quelques soit le nombre de bits vue entre la sortie et la masse sera eacutegal agrave R

La tension Vs en fonction de lrsquoeacutetat des bits sera

Ce type de CAN eacutetant tregraves classique nous nrsquoindiquerons pas les deacutemonstrations toutefois vous pourrez les trouver tregraves facilement sur Internet ou sur le Cd-rom drsquoannexes joint au dossier

Le montage de Thevenin eacutequivalent est donc

Nous avons jugeacute qursquoune discreacutetisation sur 8 bits eacutetait un peu superflu crsquoest pourquoi nous nous contenterons de 4 bits (ce qui repreacutesentent quand mecircme 16 niveaux de vitesse)

bull Lrsquoadaptation du niveau de tension

Nous avons agrave la sortie du CAN une tension qui srsquoeacutetend de 0 agrave 5v or la commande des cartes Escap ce fait entre -5v et +5v

On peut voir cette adaptation comme lrsquoajout drsquoun offset de -25v et une amplification de gain 2

Voici le montage reacutealisant cette conversion

M1 est un montage suiveur qui lsquorecopiersquo la tension aux bornes de P1 mais sous une impeacutedance constante et eacutegale agrave 4R En 1996 lrsquoeacutequipe avait brancheacute P1 directement sur M3 mais cela a pour inconveacutenient de faire varier agrave la fois lrsquooffset et la penteLe potentiomegravetre P1 permet drsquoajuster lrsquooffset (permet par conseacutequent de reacutegler lrsquoarrecirct complet de moteur) (La valeur theacuteorique de lrsquooffset est 5V (cf formule en M3))

M2 est aussi un montage suiveur Le potentiomegravetre P2 permet drsquoajuster la pente (qui doit avoir un coefficient directeur de 2) Comme M2 est connecteacute au CAN dont la reacutesistance interne est de R P2 doit ecirctre a peut precirct eacutegal agrave R de la sorte la branche aura une reacutesistance eacutequivalente de 2R

M3 Sommateur (Vs = - 2 (Ve + Voffset))

Qursquoelle valeur choisir pour R

Theacuteoriquement on peut choisir nrsquoimporte quelle valeur pour R mais en pratique si R est trop petite une intensiteacute importante serait consommeacutee sans raison et si R est trop grande la forte impeacutedance du montage le rendra tregraves sensible aux parasites (secteur moteurshellip)Ce montage a eacuteteacute testeacute et fonctionne correctement pour R=5k les amplificateurs opeacuterationnels utiliseacutes sont des LM324 mais drsquoautres seraient tout agrave fait envisageables (peu de contraintes de vitesse et de tensions de deacutechets)

4 Conclusion

Nous avons preacutefeacutereacute ne pas utiliser les cartes Escap car les moteurs ne renvoient pas une position sous forme drsquoimpulsion mais une vitesse Etant donneacute que nous avions envisageacute un repeacuterage par odomeacutetrie cela compliquait consideacuterablement la tache

Toutefois il faut savoir que cette solution a eacuteteacute testeacutee et fonctionne tregraves bien (bonne preacutecision bonne dynamique) ainsi dans le cas ougrave le repeacuterage ne se fait pas par odomeacutetrie mais des balises exteacuterieures sachez que cette solution est tregraves pratique agrave utiliser En effet pour imposer une vitesse il suffit au microcontrocircleur drsquoappliquer sur un port un mot binaire correspondant agrave la vitesse voulue hellip et crsquoest tout La carte Escap se charge du reste

5 Carte drsquoasservissement numeacuterique laquo artisanale raquo

La carte reacutealiseacutee baseacutee sur un microcontrocircleur PIC 16F877A srsquoest aveacutereacutee fonctionnelle mais les tests drsquoalgorithmes drsquoasservissement nrsquoont pas eacuteteacute effectueacutesEn effet lrsquoutilisation de cette solution neacutecessite un microcontrocircleur deacutedieacute agrave lrsquoasservissement capable de communiquer via un protocole agrave deacutefinir avec la laquo carte megravere raquo (centralisant les retours des autres capteurs du robot et agissant sur les diffeacuterents actionneurs en fonction de la strateacutegie)Or afin de limiter le nombre de microcontrocircleurs sur le robot et du fait que lrsquoon dispose drsquoun budget suffisant nous avons deacutecideacute drsquoessayer drsquoutiliser des composants speacuteciaux reacutealisant lrsquoasservissement

Le systegraveme se deacutecompose en

- Un microcontrocircleur pour appliquer la PWM asservir et commander- Une carte de puissance pour chaque moteur baseacutee sur un LMD18200- Une carte compteur drsquoimpulsions pour les codeurs

Afin de favoriser lrsquointeractiviteacute et les reacuteglages jrsquoai ajouteacute une carte afficheur LCD avec 6 boutons sur la carte microcontrocircleur

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 13: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

Maintenant que toutes les relations ont eacuteteacute mises en eacutevidence on peut regarder les reacutesultats que lrsquoon obtient avec le moteur AMAX 26G en gardant agrave lrsquoesprit que pour lapplication on considegravere que les phases drsquoacceacuteleacuteration seront preacutepondeacuterantes crsquoest pourquoi on dimensionnera les moteurs pour les phases drsquoacceacuteleacuterations

Apparemment le moteur aurait pu convenir si le reacuteducteur avait eu un rapport de reacuteduction plus faible En effet le moteur peut deacutelivrer le couple nominal neacutecessaire mais nous ne permet pas drsquoatteindre les vitesses souhaiteacutees Dans un premier temps nous avions revu nos speacutecifications agrave la baisses envisageacute la meilleure faccedilon de commander le moteur de faccedilon agrave ce que lrsquoon deacutemarre toujours en suivant la limite de puissance imposeacutee par le collecteur meacutecanique Ceci nous aurait permis drsquoavoir la meilleure dynamique du moteur La conseacutequence de ce type de fonctionnement aurait eacuteteacute un eacutechauffement excessif et un vieillissement preacutematureacute du moteur Donc les risques de casse auraient eacuteteacute multiplieacutes

Suite agrave un incident durant les phases de tests un des moteurs crsquoest vu endommageacutes crsquoest pourquoi il agrave fallu dimensionner drsquoautres moteursNous avons donc repris nos calculs avec un nouveau rapport de reacuteduction ce qui nous donne les reacutesultats suivants

Nous avons donc rechercheacute un moteur qui aurait pu avoir ses caracteacuteristiques agrave savoir - Couple nominal 34 mNm- Vitesse nominale 3342 trmin- Puissance nominale 16 W- Alimentation 24V- Reacuteducteur 1 14

Ce qui nous donnerait en sortie de reacuteducteur - Couple nominal 033 Nm- Vitesse nominale 239 trmin

Nous avons eu beaucoup de mal agrave trouver un moteur qui reacuteponde agrave ses exigences de maniegravere preacutecise et qui ait des caracteacuteristiques geacuteomeacutetriques compatibles avec les speacutecifications meacutecaniques Ces speacutecifications meacutecaniques eacutetant contraignantes compte tenu de la strateacutegie envisageacutee

Crsquoest pourquoi nous avons seacutelectionneacute un moteur un peu surdimensionneacute pour notre application toutefois cela va dans le bon sens comme nous sommes obligeacutes de mettre un renvoi drsquoangle ce qui va augmenter les pertes et lrsquoinertie Donc ce surdimensionnement devrait palier aux impreacutevus et combler nos neacutegligences

c Choix possibles

Gracircce aux informations qui preacutecegravedent on a pu choisir 3 Reacutefeacuterences bull Un motoreacuteducteur de chez MDP-Motor avec une vitesse en charge de 309 trmin-1 et

un couple de 057 Nm reacutefeacuterence AMAX32GHPPLG42S prix unitaire TTC 310 euro (avec -20 en tant que participant agrave la Coupe) disponibles sous 12 semaines longueur sans arbre de 142 mm

bull Un motoreacuteducteur de chez MDP-Motor avec une vitesse en charge de 559 trmin-1 et un couple de 060 Nm reacutefeacuterence RE035GPLG52 prix unitaire TTC 337 euro (avec -20 en tant que participant agrave la Coupe) disponibles de suite longueur sans arbre de 144 mm

bull Un motoreacuteducteur de chez Faulhaber avec une puissance de 45 W reacutefeacuterences moteur 2657 reacuteducteur seacuterie 26 Rr =14) prix unitaire TTC 507 euro disponibles de suite longueur sans arbre 125 mm

Voir en annexes pour les caracteacuteristiques de ces reacutefeacuterencesAux vues des longueurs obtenues il nous est rapidement apparu qursquoune transmission

directe Motoreacuteducteur Roue nrsquoeacutetait pas envisageable du fait drsquoune longueur totale minimum de (125 + 30) 2 = 310 mm avec 125 la longueur drsquoun motoreacuteducteur 30 la largeur estimeacutee drsquoune roue Nous avons donc opteacute pour une solution agrave renvoi drsquoangle

d Choix deacutefinitif

Gracircce aux caracteacuteristiques preacuteceacutedentes nous avons choisi les RE035GPLG52 du fait de leurs disponibiliteacute caracteacuteristiques et prix En ce qui concerne la transmission par renvoi drsquoangle nous avons opteacute pour des systegravemes deacutejagrave tout fait qui permettent une plus grande preacutecision un meilleur rendement et un meilleur rapport qualiteacute prix que les montages artisanaux Voici la reacutefeacuterence que nous avons retenue

bull Reacutefeacuterence 748-437 chez Radiospares ou B332312 chez HPCeurope avec les caracteacuteristiques suivantes Rr = 1 C max = 068 Nm V max = 1500 trmin-1 η = 094 prix RS 5750 euro piegravece et prix HPC 52 euro piegravece (avec -10 en tant que participant agrave la Coupe) (Voir les autres caracteacuteristiques en annexes)Pour des raisons de disponibiliteacute nous avons commandeacute ces 2 piegraveces chez

Radiospares En ce qui concerne la liaison entre lrsquoarbre moteur et lrsquoarbre de la transmission nous

avons deacutecideacute drsquousiner un accouplement rigide dont les plans se trouvent en annexes Du coteacute moteur le blocage en rotation est assureacute par une vis de pression qui se trouve dans la gorge preacutevue initialement pour la clavette De lrsquoautre coteacute nous avons usineacute un meacuteplat sur lrsquoarbre du reacuteducteur meacuteplat sur lequel vient appuyer une autre vis de pression

3 Les supports des moteurs

A lrsquoorigine nous avions penseacute mettre les moteurs et les roues coaxiaux nous avions donc imagineacute un systegraveme de bride qui permettrait de bloquer le moteur selon 2 axes de translation et 2 axes de rotation gracircce agrave 2 vis de serrage associeacutee agrave une eacutequerre qui permettait le blocage selon le dernier axe de translation et de rotation Le tout eacutetait fixeacute sur une plaque de fond qui constituerait la base du robot

Voici donc a quoi ressembler cette bride (pour un moteur)

Bride de maintien pour moteur de faible longueur

Bride monteacutee sur la plaque de fond avec un moteur

Ensuite lorsque nous sommes passeacutes agrave la solution avec renvoi drsquoangle nous avons deacutecideacute drsquousiner une piegravece certes complexe mais qui proposait une universaliteacute notamment au niveau des diffeacuterentes positions des moteurs (verticale et horizontale) aspect qui satisfait pleinement au cahier des charges Cette piegravece que par la suite nous appellerons Bloc Moteur doit permettre la mise et le maintien en position du motoreacuteducteur la mise et le maintien en position du reacuteducteur la fixation de lrsquoensemble au sein du robot notamment sur la plaque de fond

Apregraves une petite eacutetude nous sommes arriveacutes agrave une piegravece de ce type

Bloc moteur pour la solution avec renvoi dangle

Cette nouvelle piegravece agrave de nombreux avantages

bull Elle nous permet de pouvoir incorporer le renvoi drsquoangle bull De maintenir les piegraveces entre-elles et de limiter les efforts directs sur les

diffeacuterents eacuteleacutementsbull Drsquoecirctre installeacute agrave lrsquohorizontale ou agrave la verticale

Effectivement lors de la conception du bloc moteur nous avons penseacute aux anneacutees futures et nous avons donc preacutevu un montage des moteurs agrave la verticale ou agrave lrsquohorizontale

En position verticale

En position horizontale

4 Les roues

Comme vu lors de la veille technologique les chenilles ont quasiment disparu de la compeacutetition Ceci est ducirc au fait que cette technologie est difficile agrave mettre en œuvre et que les regraveglements proposent des aires de jeux totalement planes

Or cette anneacutee un fosseacute fait son apparition dans le regraveglement Ce fosseacute de 36 mm de profondeur vient seacuteparer deux aires de jeu Une neacutecessiteacute de traverser le fosseacute apparaicirct donc pour aller renverser les quilles de lrsquoadversaire

Deux solutions sont alors possibles bull Traverser sur le pont aleacuteatoirebull Traverser le fosseacute

Si nous choisissons de traverser par le pont lrsquoideacutee de garder notre systegraveme de roues est correcte par contre un systegraveme agrave chenille permettrait de passer par le fosseacute

Apregraves reacuteflexion de lrsquoeacutequipe PR et des membres de la Coupe E=M6 la solution de traverser par le pont est retenue Ce qui nous a conduit tout droit vers la solution agrave roues

Les roues utiliseacutees sont des roues de roller de diamegravetre 80mm et drsquoune largeur de 22mm Ces roues sont relieacutees agrave lrsquoarbre drsquoun renvoi drsquoangle par lrsquointermeacutediaire drsquoun accouplement en aluminium

5 La base

Pour la base du robot il nous a parut indispensable de dimensionner la plaque de fond en eacutepaisseur De plus afin de maintenir la solution de modulariteacute de lrsquoensemble moteurs ndash roues nous avons deacutecideacute de fixer les deux supports moteurs sur un platine qui sera elle-mecircme fixeacutee agrave la plaque de fond du robot

Premiegraverement nous avons effectueacute un dimensionnement succinct de la platine

a Reacuteaction drsquoappui

0=sum Fx OK

0=sum Fy qLRbRaorRbRaqL210 =+=++minus

qLRa21=

AB = 027 m = L

P = mg P = 15 x 10 = 150 N

Q = 150 N270 mm soit q = 555 Nm

Bille folle

Accouplement

Bloc moteur

Renvoi drsquoangle

Platine

Base du robot

Motoreacuteducteur

Roue

b Moment de flexion

0 =sum= cMMf

02

sup2 =minus+ RaxqxMf

sup221

21 qxqLxMf minus=

c Flegraveche

)( xMfEIY =

sup221

21 qxqLxEIY minus=

161sup2

41 3 CqxqLxEIY +minus=

21241

121 43 CxCqxqLxEIY ++minus=

d Conditions aux limites

Y (x=0) = 0 C2 = 0

Y (x=L) = 0 012412

44

=+minus LCqLqL

241

4qLLC =

241

3qLC =

On obtient donc

xqLqxqLxEIY 343

241

241

121 +minus=

De mecircme

+minus=

242412

343 xLxLxEIqY

On sait que bull E = 210 000 10^6bull Y = 1 10^-3 mbull Q = 555 Nmbull L = 027 m

bull12

3bhI = b = 006 m

+

minus

=24

22416

128

343 LL

LLL

EYqI

36

4

0010102100000601052155512timestimes

timestimes=minus

h

Et enfin on trouve h lrsquoeacutepaisseur de la platine h= 43 mm

Apregraves reacuteflexion nous nous sommes rendu compte que ce calcul nrsquoeacutetait pas rigoureux car nous avons consideacutereacute la theacuteorie des poutres or dans notre cas nous ne pouvons satisfaire cette theacuteorie (Longueur de la section = 10 x la largeur de la section)

Il nous faut donc utiliser un modegravele plus preacutecis crsquoest pourquoi nous avons deacutecideacute de faire un calcul par eacuteleacutements finis sous Ideacuteas Ainsi nous trouvons une eacutepaisseur h = 32 mm

Il nous faut donc une platine de plus de 3 mm Etant donneacute que la platine sera solidairement fixeacutee agrave la base du robot nous avons deacutecideacute de prendre une eacutepaisseur de platine de 2 mm et une eacutepaisseur de base de robot de 2 mm Nous obtenons donc une eacutepaisseur totale de 4 mm Ainsi nous devrions avoir sous une charge de 15 kg moins drsquoun millimegravetre de flexion de la base du robot

6 Reacutesultats

Assemblage en position horizontale

Vue eacuteclateacutee en position verticale

Photo de lrsquoassemblage roues ndash blocs moteurs ndash moteurs ndash platine

Partie C Lrsquoeacutelectronique20 Les batteries

Afin de pouvoir choisir les batteries approprieacutees agrave notre application nous devons dans un premier temps faire une estimation de la consommation drsquoeacutenergie totale avec les pointes de courant envisageacutees dans notre robotIl est agrave noter que nous ne connaissons pas encore en deacutetail tous les eacuteleacutements annexes qui seront implanteacutes dans le robot comme par exemple les capteurs et actionneurs diverses qui seront choisis en fonction des objectifs technologiques atteints ou non de lrsquoassociation et de la strateacutegie finaleDans le but de pouvoir utiliser agrave nouveau dans lrsquoavenir notre base roulante nous avons choisi de surestimer les besoins en eacutenergie de sorte agrave ne pas ecirctre pris au deacutepourvu

La consommation pourrait se deacutecomposer ainsi - 2 moteurs de 24V sous 21A soit 1008 Watts pendant 100 du temps- 3 actionneurs de 21 Watts chacun soit 63 Watts pendant 50 du temps- 3A pour lrsquoeacutelectronique sous 5V soit 15 Watts pendant 100 du temps (Asservissement carte de commandes capteurs)

Ce qui nous fait au total une consommation maximale ~180 WattsLa consommation permanente devrait ecirctre ~147 Watts permanents il faut donc que les batteries puissent deacutebiter un courant de ~6 A sous 24 V durant le fonctionnement du robot

Apregraves une longue recherche on a pu reacutealiser le tableau comparatif des batteries suivant

typeDensiteacute

deacutenergie (WhKg)

Densiteacute deacutenergie (WhL)

auto-deacutecharge (mois)

voltage dune cellule (V)

temps de charge rapide

plomb 35 111 5 agrave 10 2 8h agrave 15h

NiCd (Nickel Cadnium) 50 94 10 agrave 20 12 1h30min

NiMH (Nickel Metal Hydride) 80 135 20 agrave 30 13 2h agrave 4h

Lithium Ion 100 196 5 agrave 10 36 2h agrave 4h

Lithium polymer 150 200 5 agrave 10 36 2h agrave 4h

AlKaline rechargeable 80 15 2h agrave 3h

type

cycle de charge-deacutecharge avant

que capaciteacute passe de 100 agrave

80

Courant max Courant max pic effet meacutemoire estimation

(euroWh) prixcycles

plomb 200 agrave 300 02C 05C M 0895 0003

NiCd (Nickel Cadnium) 1500 1C 20C H 416 0003

NiMH (Nickel Metal Hydride) 300 agrave 500 05C 5C L 2 0004

Lithium Ion 500 agrave 1000 1C 2C L 8 0008

Lithium polymer 300 agrave 500 1C 2C agrave 5C L 32 0006

AlKaline rechargeable 50 02C 05C H 178 0036

Effet meacutemoire L (Low) M (Medium) H (High)Courant max C signifie capaciteacute par exemple une batterie qui peut deacutelivrer un courant max de 1C de 4Ah pourra donc deacutelivrer 4A au maximum sans risque de deacuteteacuterioration

Nous nous sommes inteacuteresseacutes au courant maximum et au temps de charge rapide pour notre choix de batteriesLe type de batterie qui semble le plus approprieacute pour nous est le type Nickel-Cadnium parfaitement adapteacute au pic drsquoappel de courant que provoquent des moteurs pouvant supporter des charges rapides en 1h30min seulement afin de devoir preacutevoir trop de jeux de batteries diffeacuterents

Les batteries LI-Ion ou LI-Polymer preacutesentent une densiteacute eacutenergeacutetique tregraves inteacuteressante mais leur prix est beaucoup plus eacuteleveacute agrave lrsquoachat et de plus dans notre application roulant sur un sol peu accidenteacute la masse pouvant ecirctre transporteacutee est suffisante pour le type NiCd

Les batteries LI-Ion ou LI-Polymer sont plus adapteacutees agrave lrsquoaeacuteromodeacutelisme ou au petit appareil eacutelectroniqueQuant aux batteries au plomb qui sont vraiment bon marcheacute le courant maximum supporteacute est trop faible est supposerait drsquoavoir une forte capaciteacute

Nous voulons avoir une autonomie de 30 minutes il nous faut donc une eacutenergie de 735 WhOr sous 24 V les batteries doivent avoir une capaciteacute de ~3 AhComme les batteries NiCd peuvent deacutebiter un courant maximum de 1C (une fois leur capaciteacute) nous devons donc prendre des batteries de 6Ah sous 24 V ce qui nous donnera une autonomie de 1 heure

Il faudra donc soit acheter un bloc accumulateur NiCd de 24 V 6 Ah srsquoil existe dans le commerce soit le reacutealiser nous mecircme en assemblant diffeacuterents eacuteleacutements

Rappelons que lrsquoassociation en seacuterie permet drsquoadditionner les tensions des eacuteleacutements associeacutes et que lrsquoassociation en parallegravele permet drsquoadditionner les courants deacutebiteacutes

Par exemple des eacuteleacutements de 12 V chacun pour 3 Ah srsquoassocieraient ainsi

Soit deux seacuteries de 20 eacuteleacutements eacutequivalentes agrave 24 V et faisant une capaciteacute de 3 Ah chacune

Il est possible de reacutepartir les accumulateurs en diffeacuterents paquets pour faciliter le rangement dans le robot ou reacutepartir la masse ou eacuteventuellement trouver des packs dans le commerce

Dans le cas de lrsquoUV PR le choix des batteries reste pour le moment sur les NiCd mais pour les essais pratiques on utilisera des batteries au plomb que lrsquoon possegravede deacutejagrave drsquoautant plus que les essais sont reacutealiseacutes avec les moteurs de propulsion et lrsquoasservissement seul ce qui

neacutecessite un deacutebit de courant de 24105 = 4375 A sur 2 batteries soit asymp2187 A

Comme les batteries au plomb peuvent deacutebiter 02C il nous en faudrait des de asymp 109 Ah

Or les essais de la base roulante ne seront que de courtes dureacutees et lrsquoon se contentera donc drsquoutiliser des batteries de 6 Ah pour des raisons de volume mecircme si elles ne sont pas vraiment bien dimensionneacutees

21 La commande des moteurs

Dans un premier temps nous verrons un bref reacutecapitulatif des cartes et modules drsquoasservissement du commerce

Pour la commande les moteurs plusieurs solutions ont eacuteteacute envisageacutees - Un asservissement lsquotout faitrsquo analogique modules laquo Escap raquo- Une solution lsquoartisanalersquo carte avec asservissement numeacuterique- Un asservissement lsquotout faitrsquo numeacuterique circuits laquo LM629 raquo

a Comparatifs des modules drsquoasservissement et calcul des correcteurs

Veille technologique sur les systegravemes drsquoasservissement utiliseacutes par les diffeacuterentes eacutecoles de la coupe E= M6

Le but de cette partie est drsquoeacutetudier les principales techniques drsquoasservissement utiliseacutees par les eacutecoles de la Coupe E=M6 Ce document est loin drsquoecirctre exhaustif et servira de base agrave compleacuteter et actualiser pour les semestres et eacutequipes prochaines

Apregraves une eacutetude sur plus drsquoune trentaine drsquoeacutecoles il ressort trois formes drsquoasservissement la plus utiliseacutee agrave 85 est du type PID en majoriteacute reacuteduit au PI ensuite viennent les microcontrocircleurs PIC associeacutes au PID et les modules AVR nous allons par la suite deacutetailler ces trois solutions Il existe eacutegalement des systegravemes de controcircle dits agrave retour drsquoeacutetat jamais utiliseacutes jusqursquoagrave preacutesent pour la Coupe crsquoest pourquoi nous ne deacutevelopperons pas son approche

3 Systegraveme PID

httpwwwancrorgfichtechactionpidindexhtm

a Principe

Pour pouvoir tester un asservissement il faut dabord reacutealiser une plate-forme de deacuteveloppement le plus geacuteneacuteralement du type suivant Mais pour commencer un brin de theacuteorie illustreacute par des exemples Le scheacutema de principe est repreacutesenteacute ci-dessous

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

Nous avons bien un scheacutema en boucle fermeacutee puisque la sortie du systegraveme est reacuteinjecteacutee dans lentreacutee Les trois blocs bleus correspondent chacun agrave une fonctionnaliteacute Ki est le coefficient inteacutegral Kp le coefficient proportionnel et Kd le coefficient deacuteriveacute Chacun de ces coefficients a une fonctionnaliteacute bien preacutecise Commenccedilons par le plus simple le proportionnel

b Asservissement P

Lasservissement proportionnel est essentiel au fonctionnement du PID Il permet essentiellement de donner de la puissance au moteur Voici quelques reacutesultats dexpeacuterimentations avec Ki=0 et Kd=0

La courbe noire repreacutesente la consigne que lon deacutesire atteindre (Ud) cest un eacutechelon de valeur 32 La courbe bleue repreacutesente la vitesse reacuteelle du systegraveme (Y) Comme vous pouvez le constater plus Kp est grand plus le systegraveme converge vite vers sa valeur finale Mais en contrepartie pour des valeurs de Kp trop grandes le systegraveme oscille Mais lagrave nest pas notre plus gros problegraveme en effet sur ces courbes on voit nettement que la vitesse du moteur natteint jamais la vitesse deacutesireacutee Cest ce que lon appelle lerreur statique elle correspond agrave la diffeacuterence entre la vitesse reacuteelle et la vitesse deacutesireacutee en reacutegime eacutetablie (une fois que le systegraveme sest stabiliseacute) Pour compenser cette erreur statique on rajoute le terme inteacutegral

c Asservissement PI

Le correcteur inteacutegral sert principalement agrave supprimer lerreur statique Lideacutee principale est de charger ou inteacutegrer lerreur depuis le deacutebut et dajouter cette erreur agrave la consigne jusquagrave ce quelle devienne nulle Lorsque cette erreur est nulle le terme inteacutegral se stabilise et il compense parfaitement lerreur entre la consigne et la vitesse reacuteelle Deacutemonstration en image

On voit cette fois-ci que le terme inteacutegral a bien fonctionneacute et que lerreur statique est nulle On constate aussi que plus le gain Ki est grand plus le systegraveme converge vite En revanche plus Ki est grand plus le systegraveme oscille et plus le deacutepassement est grand Sur des asservissements en position le terme deacuteriveacute permet de diminuer le deacutepassement et les oscillations Nous allons voir que dans notre cas nous avons quelques problegravemes

d Asservissement PID ou agrave avance de phase

On a donc rajouteacute le terme deacuteriveacute comme tout bon livre dautomatique le preacuteconise et voici les reacutesultats

Cette fois ci jai choisi de repreacutesenter la tension appliqueacutee au moteur (U) le problegraveme est bien plus flagrant ici Vous voyez que lorsque lon ajoute le terme deacuteriveacute la commande est extrecircmement bruiteacutee En reacutealiteacute on somme agrave la commande la deacuteriveacutee de la vitesse reacuteelle que lon multiplie par un gain Kd La deacuteriveacutee dune vitesse est une acceacuteleacuteration cela signifie que lon amplifie tous les bruits dacceacuteleacuteration et en plus on les multiplient par un gain Kd Donc rajoute du bruit amplifieacute dans la commande Alors pourquoi mettent t-ils ce terme deacuteriveacutee dans les livres Simplement parce que ce bruit est typique des asservissement en vitesse Sur des asservissements en position ce problegraveme est moins freacutequent car la deacuteriveacutee de la position est la vitesse

Ici le problegraveme eacutetait visible parce que nous avons reacutealiseacute toutes ces courbes sur un systegraveme reacuteel Si nous avions simuleacute ces reacutesultats lacceacuteleacuteration naurait pas eacuteteacute bruiteacutee et les courbes auraient eacuteteacute parfaites Pour impleacutementer ce PID sur notre robot il a fallu programmer en numeacuterique une deacuteriveacutee et une inteacutegrale

e PID numeacuterique et reacuteglage

Notre premier problegraveme est de programmer le terme inteacutegral Il existe une meacutethode qui consiste agrave estimer la surface entre deux eacutechantillons mais dans notre cas nous avons des problegravemes dus aux bruits et agrave la freacutequence deacutechantillonnage Alors il faut sommer toutes les erreurs depuis de deacutebut

Notre second problegraveme est de programmer le terme deacuteriveacute La meacutethode ici est de calculer la pente entre deux eacutechantillons de e Theacuteoriquement cela revient agrave faire le calcul suivant

Avec la peacuteriode deacutechantillonnage Pour faire un asservissement numeacuterique il faut impeacuterativement avoir une peacuteriode fixe Pour gagner du temps de calcul geacuteneacuteralement on inteacutegre directement dans le gain Kd

Voici un lalgorithme exemple

Ti = 0 Initialise le terme inteacutegral

for ( i=1 i lt= Nb_cycles i++ )

Init_timers (1) Initialise le timer agrave notre peacuteriode 1 ms

Y = Codeur () Stoque la valeur du codeur dans Y Rst_codeur () Remet le codeur agrave zeacutero Ud = Consigne () Mise agrave jour de la consigne e_old=e Stoque e(t-1) e = Ud - Y Calcul de lerreur Ti = Ti + e Calcul de linteacutegral Calcul du PID U = Kp e Terme proportionnel

+ Ki Ti Terme inteacutegral + Kd ( e - e_old ) Terme deacuteriveacute Moteur (U) On applique la consigne

while ( end_timer() ) On attend la fin de la peacuteriode

Pour le reacuteglage des gains Kp Ki et Kd il existe diffeacuterentes meacutethodes Ici nous lavons fait de maniegravere empirique et le reacutesultats est plutocirct bon Linconveacutenient de ces meacutethodes est quelles demandent un modegravele du systegraveme ce qui est geacuteneacuteralement dur agrave produire Il existe

aussi des composants programmables qui permettent de faire directement lasservissement numeacuterique (HCTL 1100 LM629) Ils sont exactement baseacutes sur la meacutethode preacutesenteacutee ici

Pour ce qui est du reacuteglage des correcteurs lrsquooptimal est drsquoutiliser la meacutethode de lrsquooptimum dissymeacutetrique une fois que lrsquoon agrave reacutealiseacute le modegravele du systegraveme La plus part des eacutecoles ne reacutealisent pas ce modegravele et ce limite donc agrave une correction empirique en reacutealisant des tests ou en utilisant la meacutethode Ziegler-Nichols agrave partir de la reacuteponse agrave un eacutechelon de tension

Par la suite nous rappellerons les meacutethodes de Ziegler-Nichols et de lrsquooptimum dissymeacutetrique

f Les meacutethodes de Ziegler-Nichols

Ces meacutethodes fournissent des reacuteglages pour des correcteurs de type PID (pouvant ne comporter quune action Proportionnelle une action Proportionnelle et une action Inteacutegrale ou les 3 actions simultaneacutement) dont la structure est la suivante

bull MEacuteTHODE DE ZIEGLER NICHOLS TEMPORELLE

Elle est adapteacutee aux systegravemes stables en boucle ouverte qui ont une reacuteponse apeacuteriodique La reacuteponse agrave un eacutechelon unitaire du systegraveme physique doit ecirctre enregistreacutee Diffeacuterentes caracteacuteristiques de la reacuteponse obtenue sont mesureacutees

Le modegravele approcheacute utiliseacutee par Ziegler Nichols comporte une constante de temps et un retard pur ou bien un retard pur et un inteacutegrateur

Si le systegraveme physique comporte un inteacutegrateur les mesures de a et de L demeurent disponibles sur le deacutebut de la reacuteponse

Les reacuteglages suggeacutereacutes par la meacutethode temporelle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 1a - -correcteur PI 09a 3L -

correcteur PID 12a 2L L2Concernant le raffinement des reacuteglages augmenter Kp ou diminuer Ti augment les

oscillations de la sortie

bull MEacuteTHODE DE ZIEGLER NICHOLS FREacuteQUENTIELLE

Cette meacutethode convient particuliegraverement bien aux systegravemes instables en boucle ouverte pour lesquels la meacutethode temporelle nest pas envisageable Lexpeacuterimentation se fait sur le systegraveme boucleacute avec un simple gain proportionnel qui doit ecirctre stable Le principe est de modifier la valeur du gain par essai-erreur jusquagrave atteindre la limite de stabiliteacute (pheacutenomegravene de pompage) Il reste agrave relever le gain limite K0 obtenu et agrave mesurer la peacuteriode T0 des oscillations de la reacuteponse obtenue

Les reacuteglages suggeacutereacutes par la meacutethode freacutequentielle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 05 K0 - -correcteur PI 045 K0 08 T0 -

correcteur PID 06 K0 05 T0 0125 T0

A la page Internet suivante vous trouverez un simulateur de cette meacutethode

httpwww-hadocensieginpgfrhadocateliersreglageEmpCorrReglEmpCorrDroithtml

g Meacutethode de lrsquooptimum dyssimeacutetique (voir poly MC06 Chap 5 et 8)

Cette meacutethode srsquoapplique une fois le modegravele reacutealiseacute et mis sous la forme drsquoun second ordre

et on obtient le correcteur PI

pour une surtension deacutesireacutee QdB

Q = 10^(QdB20)λ= radic(Qsup2(Qsup2-1))Δφ = arcos (1 λ)α= ((1+sin(Δφ))cos(Δφ))sup2ωN= ωQαω0= ωQradicαKP= ω0 λ KQ

4 Les microcontrocircleurs

a Avant propos

Cette fiche se veut ecirctre sous la forme dun projet Un projet non termineacute ougrave chacun peut apporter sa contribution (ameacuteliorations adaptations corrections etc)De ce fait ces pages sont ameneacutees agrave eacutevoluer et vous-mecircme pourrez participer agrave leur eacutevolution

Pourquoi avoir choisit un tel mode de travail Tout simplement parce que le sujet est vaste et que des variations sont possibles suivant lutilisation quen feront les diffeacuterentes personnes

Le but de ce projet est de reacutealiser une double asservissement de vitesse (type PID) de deux moteurs sur un seul PIC (type 16F877) Lutiliteacute majeure eacutetant de faire rouler un robot bien droit et agrave la bonne vitesse A quoi ccedila sert plus preacuteciseacutement

Avec un seul PIC ce projet permet aux roboticiens amateurs et chevronneacutes de reacutealiser facilement leur asservissement de vitesse de moteurs agrave courant continu (en geacuteneacuteral les moteurs de propulsions de leur robot mais ccedila peut ecirctre bien sucircr dautres moteurs) La commande de lasservissement pourra se faire agrave terme en liaison seacuterie (deacutejagrave fait) I2C ou par bus ISA

b Avantages

Il existe bien sucircr dautres systegravemes qui gegraverent un asservissement de vitesses Des systegravemes professionnels existent comme les LM629 Ils ont linconveacutenient decirctre cher (et ce pour un seul moteur) et relativement complexes

Pourquoi chercher un fusil pour chasser des moustiques Le double asservissement sur PIC vous coucircte le prix dun PIC soit environ 15Euro pour un 16F877 actuellement et ce pour 2 moteurs Ce double asservissement se veut relativement simple De plus vous pouvez en modifier le programme et ladapter agrave vos besoins

c Inconveacutenients

Les personnes qui auront les moyens preacutefeacutererons opter pour un systegraveme professionnel certainement pour des raisons de fiabiliteacute mais cest agrave leurs risques et peacuterils -)La puissance du PIC eacutetant limiteacutee il ne peut pas reacutealiser des PID trop rapides ou trop complexes Il y a en particulier une limitation sur le nombre dimpulsions par seconde quil est capable de geacuterer

Le langage utiliseacute eacutetant le C il faut une licence du logiciel pour pouvoir modifier et recompiler le code source c Mais le projet se veut geacuteneacuterique Une version donneacutee pourra ecirctre utiliseacute sans recompilation en respectant quelques contraintes

d Asservissement

En fait on pourrait imaginer quil suffirait denvoyer au moteur une puissance constante pour quil tourne tout le temps agrave la mecircme vitesse Ce nest pas vrai du tout Tout dabord 2 moteurs dune mecircme seacuterie nauront pas forceacutement le mecircme comportement Ensuite parce que les niveaux de tension ou dautre diffeacuterences eacutelectriques peuvent jouer Enfin parce que des influences exteacuterieures (obstacles frein meacutecanique du robot) peuvent jouer

Du coup il est tregraves difficile de faire aller un moteur agrave la vitesse voulue Parfois ce nest pas gecircnant mais ccedila peut lecirctre Un exemple classique est le robot avec 2 roues motrices type char une configuration qui est tregraves courante Mais pour que ce robot aille droit il faut que les 2 moteurs aillent exactement agrave la mecircme vitesse

La solution est de faire un asservissement Cest a dire moduler dynamiquement la puissance envoyeacute aux moteurs suivant leur vitesse mesureacutee afin dadapter celle-ci agrave ce qui est deacutesireacuteeCela implique un eacuteleacutement tregraves important pour asservir il faut un capteur de vitesse du moteur En geacuteneacuteral il sagit dun compte-tour qui enverra N impulsions (ou pas) par tour de moteur Ensuite un programme va calculer en fonction de la vitesse mesureacutee du moteur la puissance agrave utiliser

Les asservissements sont constamment en train de chercher leacutequilibre Il faut bien comprendre quils mettent un certain temps agrave latteindre et ce dernier peut aussi ecirctre instable si lasservissement est mal reacutegleacute

Lasservissement quon va utiliser ici est un classique PIDou plus preacuteciseacutement un PI car pour des raisons de vitesses de traitement la composante deacuteriveacutee est laisseacutee de coteacute (mais rien de difficile agrave rajouter)

Le PID ou Proportionnel Inteacutegrale Deacuteriveacute est une meacutethode de calcul dasservissement

Soit Kp Ki et Kd les coefficients proportionnels inteacutegrale et deacuteriveacuteSoit e lerreur Vitesse mesureacutee moins vitesse demandeacuteeSoit Ti le terme inteacutegral dabord initialiseacute agrave 0

Consigne a appliquer (PWM) = Kp e + (1Ki) (Ti += e) + Kd (e - e(t-1))

On pourrait dire des pages et des pages sur le PID et ce nest pas mon but ici Merci de vous reporter au lien ci-dessous

Pour plus de deacutetails sur le PID la page de lANCR httpwwwancrorgfichtechactionpidindexhtmChez les Fribottes la Simulation de Jean-Claude httpwwwwikifreefrWiKiFriindexphpSimulateur20de20PID

e Le pic

Le PIC est un petit microcontrocircleur assez bon marche et simple a programmer comme a utiliser

La aussi je vais pas rentrer dans les deacutetails vous pouvez vous reporter agrave la bdtech du site Fribotte et en particulier aux cours de Bigonoff

Le PIC est ici programmeacute en C voir la page Fribotte ici Lutilisation du langage C permet dalleacuteger consideacuterablement le deacuteveloppement dune application compliqueacutee

2 Module AVR

httpwwwenseirbfr~matzfravrphp

Tregraves peu de renseignement sur ce module sinon ces informations drsquoun eacutetudiant de lrsquoEnseirb

Depuis plusieurs anneacutees je participe agrave la coupe de robotique E=M6 dont lobjectif pour chaque eacutequipe est de fabriquer un robot autonome devant se conformer agrave un regraveglement Pour plus dinfos vous pouvez vous rendre sur le site de mon eacutequipe Microb Technology ou bien sur le site de Planegravete Sciences lorganisme beacuteneacutevole qui organise cette compeacutetition

Jai deacutecouvert en 2001 les microcontrocircleurs Atmel AVR auxquels je me suis beaucoup attacheacute dune part parce quils sont assez performants pour des microcontrocircleurs 8 bits mais aussi et surtout car le fameux compilateur libre GCC est capable de compiler du code C pour ces petites becirctes Il existe de surcroicirct plusieurs outils libres permettant de les programmer de les simuler etc

Le but de ce projet est donc de deacutevelopper des modules servant dinterface geacuteneacuterique avec le hardware du microcontrocircleur quel que soit la version (par exemple les UART inclus dans les AVR AtMega sont diffeacuterents de ceux preacutesents dans les petits AVR) et de deacutevelopper des modules utiles pour certaines utilisations usuelles et pas seulement pour la coupe E=M6 (codage de hamming asservissement chiffrement etc)

Vous pouvez contacter leacutequipe de deacuteveloppement agrave avr-devdroids-corporg Pour le moment aucune release na eacuteteacute faite mais le travail est deacutejagrave bien avanceacute Chaque soir un screenshot du CVS est reacutealiseacute Il peut ne pas compiler mais normalement ccedila devrait fonctionner Voici le lien

3 Modules drsquoasservissement analogique laquo Escap raquo

Nous avons essayeacute de reacutecupeacuterer les cartes de commande Escap pour moteurs Escap qui avaient eacuteteacute utiliseacutees en 96 et 98 avec succegraves

Nous les avons monteacutes sur une base roulante qui pesait en tout 74 kgVoici grosso-modo leurs avantages et leurs inconveacutenients (pour les notices techniques voir le rapport 96 ou 98)

a Avantages

Cette carte inclut directement un asservissement avec correcteur PI la commande de puissance les ponts en H

Elle est tregraves facile agrave utiliser Elle est speacutecialement conccedilue pour les moteurs Escap que nous avons donc

parfaitement adapteacutee

b Inconveacutenients

Les moteurs ne fonctionnent correctement que sous 24v Les cartes et les moteurs semblent assez gourment Les cartes nantis de gros radiateurs sont relativement encombrantes Les tachymegravetres monteacutes sur les moteurs ne donnent pas une indication de position

mais de vitesse (qui plus est en analogique)

Nous avons preacutefeacutereacute refaire la partie commande car celle de 1996 souffrait de quelques deacutefauts (cf rapport 1996)

La conversion numeacuterique analogique

Pour reacutealiser la conversion numeacuterique analogique nous avons choisit un pont agrave reacutesistance R-2R

Nous pouvons consideacuterer que chaque bit est relieacute agrave un geacuteneacuterateur ideacuteal de tension (qui deacutelivre 0v ou 5v) Par conseacutequent la reacutesistance eacutequivalente quelque soit lrsquoeacutetat des bits et quelques soit le nombre de bits vue entre la sortie et la masse sera eacutegal agrave R

La tension Vs en fonction de lrsquoeacutetat des bits sera

Ce type de CAN eacutetant tregraves classique nous nrsquoindiquerons pas les deacutemonstrations toutefois vous pourrez les trouver tregraves facilement sur Internet ou sur le Cd-rom drsquoannexes joint au dossier

Le montage de Thevenin eacutequivalent est donc

Nous avons jugeacute qursquoune discreacutetisation sur 8 bits eacutetait un peu superflu crsquoest pourquoi nous nous contenterons de 4 bits (ce qui repreacutesentent quand mecircme 16 niveaux de vitesse)

bull Lrsquoadaptation du niveau de tension

Nous avons agrave la sortie du CAN une tension qui srsquoeacutetend de 0 agrave 5v or la commande des cartes Escap ce fait entre -5v et +5v

On peut voir cette adaptation comme lrsquoajout drsquoun offset de -25v et une amplification de gain 2

Voici le montage reacutealisant cette conversion

M1 est un montage suiveur qui lsquorecopiersquo la tension aux bornes de P1 mais sous une impeacutedance constante et eacutegale agrave 4R En 1996 lrsquoeacutequipe avait brancheacute P1 directement sur M3 mais cela a pour inconveacutenient de faire varier agrave la fois lrsquooffset et la penteLe potentiomegravetre P1 permet drsquoajuster lrsquooffset (permet par conseacutequent de reacutegler lrsquoarrecirct complet de moteur) (La valeur theacuteorique de lrsquooffset est 5V (cf formule en M3))

M2 est aussi un montage suiveur Le potentiomegravetre P2 permet drsquoajuster la pente (qui doit avoir un coefficient directeur de 2) Comme M2 est connecteacute au CAN dont la reacutesistance interne est de R P2 doit ecirctre a peut precirct eacutegal agrave R de la sorte la branche aura une reacutesistance eacutequivalente de 2R

M3 Sommateur (Vs = - 2 (Ve + Voffset))

Qursquoelle valeur choisir pour R

Theacuteoriquement on peut choisir nrsquoimporte quelle valeur pour R mais en pratique si R est trop petite une intensiteacute importante serait consommeacutee sans raison et si R est trop grande la forte impeacutedance du montage le rendra tregraves sensible aux parasites (secteur moteurshellip)Ce montage a eacuteteacute testeacute et fonctionne correctement pour R=5k les amplificateurs opeacuterationnels utiliseacutes sont des LM324 mais drsquoautres seraient tout agrave fait envisageables (peu de contraintes de vitesse et de tensions de deacutechets)

4 Conclusion

Nous avons preacutefeacutereacute ne pas utiliser les cartes Escap car les moteurs ne renvoient pas une position sous forme drsquoimpulsion mais une vitesse Etant donneacute que nous avions envisageacute un repeacuterage par odomeacutetrie cela compliquait consideacuterablement la tache

Toutefois il faut savoir que cette solution a eacuteteacute testeacutee et fonctionne tregraves bien (bonne preacutecision bonne dynamique) ainsi dans le cas ougrave le repeacuterage ne se fait pas par odomeacutetrie mais des balises exteacuterieures sachez que cette solution est tregraves pratique agrave utiliser En effet pour imposer une vitesse il suffit au microcontrocircleur drsquoappliquer sur un port un mot binaire correspondant agrave la vitesse voulue hellip et crsquoest tout La carte Escap se charge du reste

5 Carte drsquoasservissement numeacuterique laquo artisanale raquo

La carte reacutealiseacutee baseacutee sur un microcontrocircleur PIC 16F877A srsquoest aveacutereacutee fonctionnelle mais les tests drsquoalgorithmes drsquoasservissement nrsquoont pas eacuteteacute effectueacutesEn effet lrsquoutilisation de cette solution neacutecessite un microcontrocircleur deacutedieacute agrave lrsquoasservissement capable de communiquer via un protocole agrave deacutefinir avec la laquo carte megravere raquo (centralisant les retours des autres capteurs du robot et agissant sur les diffeacuterents actionneurs en fonction de la strateacutegie)Or afin de limiter le nombre de microcontrocircleurs sur le robot et du fait que lrsquoon dispose drsquoun budget suffisant nous avons deacutecideacute drsquoessayer drsquoutiliser des composants speacuteciaux reacutealisant lrsquoasservissement

Le systegraveme se deacutecompose en

- Un microcontrocircleur pour appliquer la PWM asservir et commander- Une carte de puissance pour chaque moteur baseacutee sur un LMD18200- Une carte compteur drsquoimpulsions pour les codeurs

Afin de favoriser lrsquointeractiviteacute et les reacuteglages jrsquoai ajouteacute une carte afficheur LCD avec 6 boutons sur la carte microcontrocircleur

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 14: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

Nous avons donc rechercheacute un moteur qui aurait pu avoir ses caracteacuteristiques agrave savoir - Couple nominal 34 mNm- Vitesse nominale 3342 trmin- Puissance nominale 16 W- Alimentation 24V- Reacuteducteur 1 14

Ce qui nous donnerait en sortie de reacuteducteur - Couple nominal 033 Nm- Vitesse nominale 239 trmin

Nous avons eu beaucoup de mal agrave trouver un moteur qui reacuteponde agrave ses exigences de maniegravere preacutecise et qui ait des caracteacuteristiques geacuteomeacutetriques compatibles avec les speacutecifications meacutecaniques Ces speacutecifications meacutecaniques eacutetant contraignantes compte tenu de la strateacutegie envisageacutee

Crsquoest pourquoi nous avons seacutelectionneacute un moteur un peu surdimensionneacute pour notre application toutefois cela va dans le bon sens comme nous sommes obligeacutes de mettre un renvoi drsquoangle ce qui va augmenter les pertes et lrsquoinertie Donc ce surdimensionnement devrait palier aux impreacutevus et combler nos neacutegligences

c Choix possibles

Gracircce aux informations qui preacutecegravedent on a pu choisir 3 Reacutefeacuterences bull Un motoreacuteducteur de chez MDP-Motor avec une vitesse en charge de 309 trmin-1 et

un couple de 057 Nm reacutefeacuterence AMAX32GHPPLG42S prix unitaire TTC 310 euro (avec -20 en tant que participant agrave la Coupe) disponibles sous 12 semaines longueur sans arbre de 142 mm

bull Un motoreacuteducteur de chez MDP-Motor avec une vitesse en charge de 559 trmin-1 et un couple de 060 Nm reacutefeacuterence RE035GPLG52 prix unitaire TTC 337 euro (avec -20 en tant que participant agrave la Coupe) disponibles de suite longueur sans arbre de 144 mm

bull Un motoreacuteducteur de chez Faulhaber avec une puissance de 45 W reacutefeacuterences moteur 2657 reacuteducteur seacuterie 26 Rr =14) prix unitaire TTC 507 euro disponibles de suite longueur sans arbre 125 mm

Voir en annexes pour les caracteacuteristiques de ces reacutefeacuterencesAux vues des longueurs obtenues il nous est rapidement apparu qursquoune transmission

directe Motoreacuteducteur Roue nrsquoeacutetait pas envisageable du fait drsquoune longueur totale minimum de (125 + 30) 2 = 310 mm avec 125 la longueur drsquoun motoreacuteducteur 30 la largeur estimeacutee drsquoune roue Nous avons donc opteacute pour une solution agrave renvoi drsquoangle

d Choix deacutefinitif

Gracircce aux caracteacuteristiques preacuteceacutedentes nous avons choisi les RE035GPLG52 du fait de leurs disponibiliteacute caracteacuteristiques et prix En ce qui concerne la transmission par renvoi drsquoangle nous avons opteacute pour des systegravemes deacutejagrave tout fait qui permettent une plus grande preacutecision un meilleur rendement et un meilleur rapport qualiteacute prix que les montages artisanaux Voici la reacutefeacuterence que nous avons retenue

bull Reacutefeacuterence 748-437 chez Radiospares ou B332312 chez HPCeurope avec les caracteacuteristiques suivantes Rr = 1 C max = 068 Nm V max = 1500 trmin-1 η = 094 prix RS 5750 euro piegravece et prix HPC 52 euro piegravece (avec -10 en tant que participant agrave la Coupe) (Voir les autres caracteacuteristiques en annexes)Pour des raisons de disponibiliteacute nous avons commandeacute ces 2 piegraveces chez

Radiospares En ce qui concerne la liaison entre lrsquoarbre moteur et lrsquoarbre de la transmission nous

avons deacutecideacute drsquousiner un accouplement rigide dont les plans se trouvent en annexes Du coteacute moteur le blocage en rotation est assureacute par une vis de pression qui se trouve dans la gorge preacutevue initialement pour la clavette De lrsquoautre coteacute nous avons usineacute un meacuteplat sur lrsquoarbre du reacuteducteur meacuteplat sur lequel vient appuyer une autre vis de pression

3 Les supports des moteurs

A lrsquoorigine nous avions penseacute mettre les moteurs et les roues coaxiaux nous avions donc imagineacute un systegraveme de bride qui permettrait de bloquer le moteur selon 2 axes de translation et 2 axes de rotation gracircce agrave 2 vis de serrage associeacutee agrave une eacutequerre qui permettait le blocage selon le dernier axe de translation et de rotation Le tout eacutetait fixeacute sur une plaque de fond qui constituerait la base du robot

Voici donc a quoi ressembler cette bride (pour un moteur)

Bride de maintien pour moteur de faible longueur

Bride monteacutee sur la plaque de fond avec un moteur

Ensuite lorsque nous sommes passeacutes agrave la solution avec renvoi drsquoangle nous avons deacutecideacute drsquousiner une piegravece certes complexe mais qui proposait une universaliteacute notamment au niveau des diffeacuterentes positions des moteurs (verticale et horizontale) aspect qui satisfait pleinement au cahier des charges Cette piegravece que par la suite nous appellerons Bloc Moteur doit permettre la mise et le maintien en position du motoreacuteducteur la mise et le maintien en position du reacuteducteur la fixation de lrsquoensemble au sein du robot notamment sur la plaque de fond

Apregraves une petite eacutetude nous sommes arriveacutes agrave une piegravece de ce type

Bloc moteur pour la solution avec renvoi dangle

Cette nouvelle piegravece agrave de nombreux avantages

bull Elle nous permet de pouvoir incorporer le renvoi drsquoangle bull De maintenir les piegraveces entre-elles et de limiter les efforts directs sur les

diffeacuterents eacuteleacutementsbull Drsquoecirctre installeacute agrave lrsquohorizontale ou agrave la verticale

Effectivement lors de la conception du bloc moteur nous avons penseacute aux anneacutees futures et nous avons donc preacutevu un montage des moteurs agrave la verticale ou agrave lrsquohorizontale

En position verticale

En position horizontale

4 Les roues

Comme vu lors de la veille technologique les chenilles ont quasiment disparu de la compeacutetition Ceci est ducirc au fait que cette technologie est difficile agrave mettre en œuvre et que les regraveglements proposent des aires de jeux totalement planes

Or cette anneacutee un fosseacute fait son apparition dans le regraveglement Ce fosseacute de 36 mm de profondeur vient seacuteparer deux aires de jeu Une neacutecessiteacute de traverser le fosseacute apparaicirct donc pour aller renverser les quilles de lrsquoadversaire

Deux solutions sont alors possibles bull Traverser sur le pont aleacuteatoirebull Traverser le fosseacute

Si nous choisissons de traverser par le pont lrsquoideacutee de garder notre systegraveme de roues est correcte par contre un systegraveme agrave chenille permettrait de passer par le fosseacute

Apregraves reacuteflexion de lrsquoeacutequipe PR et des membres de la Coupe E=M6 la solution de traverser par le pont est retenue Ce qui nous a conduit tout droit vers la solution agrave roues

Les roues utiliseacutees sont des roues de roller de diamegravetre 80mm et drsquoune largeur de 22mm Ces roues sont relieacutees agrave lrsquoarbre drsquoun renvoi drsquoangle par lrsquointermeacutediaire drsquoun accouplement en aluminium

5 La base

Pour la base du robot il nous a parut indispensable de dimensionner la plaque de fond en eacutepaisseur De plus afin de maintenir la solution de modulariteacute de lrsquoensemble moteurs ndash roues nous avons deacutecideacute de fixer les deux supports moteurs sur un platine qui sera elle-mecircme fixeacutee agrave la plaque de fond du robot

Premiegraverement nous avons effectueacute un dimensionnement succinct de la platine

a Reacuteaction drsquoappui

0=sum Fx OK

0=sum Fy qLRbRaorRbRaqL210 =+=++minus

qLRa21=

AB = 027 m = L

P = mg P = 15 x 10 = 150 N

Q = 150 N270 mm soit q = 555 Nm

Bille folle

Accouplement

Bloc moteur

Renvoi drsquoangle

Platine

Base du robot

Motoreacuteducteur

Roue

b Moment de flexion

0 =sum= cMMf

02

sup2 =minus+ RaxqxMf

sup221

21 qxqLxMf minus=

c Flegraveche

)( xMfEIY =

sup221

21 qxqLxEIY minus=

161sup2

41 3 CqxqLxEIY +minus=

21241

121 43 CxCqxqLxEIY ++minus=

d Conditions aux limites

Y (x=0) = 0 C2 = 0

Y (x=L) = 0 012412

44

=+minus LCqLqL

241

4qLLC =

241

3qLC =

On obtient donc

xqLqxqLxEIY 343

241

241

121 +minus=

De mecircme

+minus=

242412

343 xLxLxEIqY

On sait que bull E = 210 000 10^6bull Y = 1 10^-3 mbull Q = 555 Nmbull L = 027 m

bull12

3bhI = b = 006 m

+

minus

=24

22416

128

343 LL

LLL

EYqI

36

4

0010102100000601052155512timestimes

timestimes=minus

h

Et enfin on trouve h lrsquoeacutepaisseur de la platine h= 43 mm

Apregraves reacuteflexion nous nous sommes rendu compte que ce calcul nrsquoeacutetait pas rigoureux car nous avons consideacutereacute la theacuteorie des poutres or dans notre cas nous ne pouvons satisfaire cette theacuteorie (Longueur de la section = 10 x la largeur de la section)

Il nous faut donc utiliser un modegravele plus preacutecis crsquoest pourquoi nous avons deacutecideacute de faire un calcul par eacuteleacutements finis sous Ideacuteas Ainsi nous trouvons une eacutepaisseur h = 32 mm

Il nous faut donc une platine de plus de 3 mm Etant donneacute que la platine sera solidairement fixeacutee agrave la base du robot nous avons deacutecideacute de prendre une eacutepaisseur de platine de 2 mm et une eacutepaisseur de base de robot de 2 mm Nous obtenons donc une eacutepaisseur totale de 4 mm Ainsi nous devrions avoir sous une charge de 15 kg moins drsquoun millimegravetre de flexion de la base du robot

6 Reacutesultats

Assemblage en position horizontale

Vue eacuteclateacutee en position verticale

Photo de lrsquoassemblage roues ndash blocs moteurs ndash moteurs ndash platine

Partie C Lrsquoeacutelectronique20 Les batteries

Afin de pouvoir choisir les batteries approprieacutees agrave notre application nous devons dans un premier temps faire une estimation de la consommation drsquoeacutenergie totale avec les pointes de courant envisageacutees dans notre robotIl est agrave noter que nous ne connaissons pas encore en deacutetail tous les eacuteleacutements annexes qui seront implanteacutes dans le robot comme par exemple les capteurs et actionneurs diverses qui seront choisis en fonction des objectifs technologiques atteints ou non de lrsquoassociation et de la strateacutegie finaleDans le but de pouvoir utiliser agrave nouveau dans lrsquoavenir notre base roulante nous avons choisi de surestimer les besoins en eacutenergie de sorte agrave ne pas ecirctre pris au deacutepourvu

La consommation pourrait se deacutecomposer ainsi - 2 moteurs de 24V sous 21A soit 1008 Watts pendant 100 du temps- 3 actionneurs de 21 Watts chacun soit 63 Watts pendant 50 du temps- 3A pour lrsquoeacutelectronique sous 5V soit 15 Watts pendant 100 du temps (Asservissement carte de commandes capteurs)

Ce qui nous fait au total une consommation maximale ~180 WattsLa consommation permanente devrait ecirctre ~147 Watts permanents il faut donc que les batteries puissent deacutebiter un courant de ~6 A sous 24 V durant le fonctionnement du robot

Apregraves une longue recherche on a pu reacutealiser le tableau comparatif des batteries suivant

typeDensiteacute

deacutenergie (WhKg)

Densiteacute deacutenergie (WhL)

auto-deacutecharge (mois)

voltage dune cellule (V)

temps de charge rapide

plomb 35 111 5 agrave 10 2 8h agrave 15h

NiCd (Nickel Cadnium) 50 94 10 agrave 20 12 1h30min

NiMH (Nickel Metal Hydride) 80 135 20 agrave 30 13 2h agrave 4h

Lithium Ion 100 196 5 agrave 10 36 2h agrave 4h

Lithium polymer 150 200 5 agrave 10 36 2h agrave 4h

AlKaline rechargeable 80 15 2h agrave 3h

type

cycle de charge-deacutecharge avant

que capaciteacute passe de 100 agrave

80

Courant max Courant max pic effet meacutemoire estimation

(euroWh) prixcycles

plomb 200 agrave 300 02C 05C M 0895 0003

NiCd (Nickel Cadnium) 1500 1C 20C H 416 0003

NiMH (Nickel Metal Hydride) 300 agrave 500 05C 5C L 2 0004

Lithium Ion 500 agrave 1000 1C 2C L 8 0008

Lithium polymer 300 agrave 500 1C 2C agrave 5C L 32 0006

AlKaline rechargeable 50 02C 05C H 178 0036

Effet meacutemoire L (Low) M (Medium) H (High)Courant max C signifie capaciteacute par exemple une batterie qui peut deacutelivrer un courant max de 1C de 4Ah pourra donc deacutelivrer 4A au maximum sans risque de deacuteteacuterioration

Nous nous sommes inteacuteresseacutes au courant maximum et au temps de charge rapide pour notre choix de batteriesLe type de batterie qui semble le plus approprieacute pour nous est le type Nickel-Cadnium parfaitement adapteacute au pic drsquoappel de courant que provoquent des moteurs pouvant supporter des charges rapides en 1h30min seulement afin de devoir preacutevoir trop de jeux de batteries diffeacuterents

Les batteries LI-Ion ou LI-Polymer preacutesentent une densiteacute eacutenergeacutetique tregraves inteacuteressante mais leur prix est beaucoup plus eacuteleveacute agrave lrsquoachat et de plus dans notre application roulant sur un sol peu accidenteacute la masse pouvant ecirctre transporteacutee est suffisante pour le type NiCd

Les batteries LI-Ion ou LI-Polymer sont plus adapteacutees agrave lrsquoaeacuteromodeacutelisme ou au petit appareil eacutelectroniqueQuant aux batteries au plomb qui sont vraiment bon marcheacute le courant maximum supporteacute est trop faible est supposerait drsquoavoir une forte capaciteacute

Nous voulons avoir une autonomie de 30 minutes il nous faut donc une eacutenergie de 735 WhOr sous 24 V les batteries doivent avoir une capaciteacute de ~3 AhComme les batteries NiCd peuvent deacutebiter un courant maximum de 1C (une fois leur capaciteacute) nous devons donc prendre des batteries de 6Ah sous 24 V ce qui nous donnera une autonomie de 1 heure

Il faudra donc soit acheter un bloc accumulateur NiCd de 24 V 6 Ah srsquoil existe dans le commerce soit le reacutealiser nous mecircme en assemblant diffeacuterents eacuteleacutements

Rappelons que lrsquoassociation en seacuterie permet drsquoadditionner les tensions des eacuteleacutements associeacutes et que lrsquoassociation en parallegravele permet drsquoadditionner les courants deacutebiteacutes

Par exemple des eacuteleacutements de 12 V chacun pour 3 Ah srsquoassocieraient ainsi

Soit deux seacuteries de 20 eacuteleacutements eacutequivalentes agrave 24 V et faisant une capaciteacute de 3 Ah chacune

Il est possible de reacutepartir les accumulateurs en diffeacuterents paquets pour faciliter le rangement dans le robot ou reacutepartir la masse ou eacuteventuellement trouver des packs dans le commerce

Dans le cas de lrsquoUV PR le choix des batteries reste pour le moment sur les NiCd mais pour les essais pratiques on utilisera des batteries au plomb que lrsquoon possegravede deacutejagrave drsquoautant plus que les essais sont reacutealiseacutes avec les moteurs de propulsion et lrsquoasservissement seul ce qui

neacutecessite un deacutebit de courant de 24105 = 4375 A sur 2 batteries soit asymp2187 A

Comme les batteries au plomb peuvent deacutebiter 02C il nous en faudrait des de asymp 109 Ah

Or les essais de la base roulante ne seront que de courtes dureacutees et lrsquoon se contentera donc drsquoutiliser des batteries de 6 Ah pour des raisons de volume mecircme si elles ne sont pas vraiment bien dimensionneacutees

21 La commande des moteurs

Dans un premier temps nous verrons un bref reacutecapitulatif des cartes et modules drsquoasservissement du commerce

Pour la commande les moteurs plusieurs solutions ont eacuteteacute envisageacutees - Un asservissement lsquotout faitrsquo analogique modules laquo Escap raquo- Une solution lsquoartisanalersquo carte avec asservissement numeacuterique- Un asservissement lsquotout faitrsquo numeacuterique circuits laquo LM629 raquo

a Comparatifs des modules drsquoasservissement et calcul des correcteurs

Veille technologique sur les systegravemes drsquoasservissement utiliseacutes par les diffeacuterentes eacutecoles de la coupe E= M6

Le but de cette partie est drsquoeacutetudier les principales techniques drsquoasservissement utiliseacutees par les eacutecoles de la Coupe E=M6 Ce document est loin drsquoecirctre exhaustif et servira de base agrave compleacuteter et actualiser pour les semestres et eacutequipes prochaines

Apregraves une eacutetude sur plus drsquoune trentaine drsquoeacutecoles il ressort trois formes drsquoasservissement la plus utiliseacutee agrave 85 est du type PID en majoriteacute reacuteduit au PI ensuite viennent les microcontrocircleurs PIC associeacutes au PID et les modules AVR nous allons par la suite deacutetailler ces trois solutions Il existe eacutegalement des systegravemes de controcircle dits agrave retour drsquoeacutetat jamais utiliseacutes jusqursquoagrave preacutesent pour la Coupe crsquoest pourquoi nous ne deacutevelopperons pas son approche

3 Systegraveme PID

httpwwwancrorgfichtechactionpidindexhtm

a Principe

Pour pouvoir tester un asservissement il faut dabord reacutealiser une plate-forme de deacuteveloppement le plus geacuteneacuteralement du type suivant Mais pour commencer un brin de theacuteorie illustreacute par des exemples Le scheacutema de principe est repreacutesenteacute ci-dessous

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

Nous avons bien un scheacutema en boucle fermeacutee puisque la sortie du systegraveme est reacuteinjecteacutee dans lentreacutee Les trois blocs bleus correspondent chacun agrave une fonctionnaliteacute Ki est le coefficient inteacutegral Kp le coefficient proportionnel et Kd le coefficient deacuteriveacute Chacun de ces coefficients a une fonctionnaliteacute bien preacutecise Commenccedilons par le plus simple le proportionnel

b Asservissement P

Lasservissement proportionnel est essentiel au fonctionnement du PID Il permet essentiellement de donner de la puissance au moteur Voici quelques reacutesultats dexpeacuterimentations avec Ki=0 et Kd=0

La courbe noire repreacutesente la consigne que lon deacutesire atteindre (Ud) cest un eacutechelon de valeur 32 La courbe bleue repreacutesente la vitesse reacuteelle du systegraveme (Y) Comme vous pouvez le constater plus Kp est grand plus le systegraveme converge vite vers sa valeur finale Mais en contrepartie pour des valeurs de Kp trop grandes le systegraveme oscille Mais lagrave nest pas notre plus gros problegraveme en effet sur ces courbes on voit nettement que la vitesse du moteur natteint jamais la vitesse deacutesireacutee Cest ce que lon appelle lerreur statique elle correspond agrave la diffeacuterence entre la vitesse reacuteelle et la vitesse deacutesireacutee en reacutegime eacutetablie (une fois que le systegraveme sest stabiliseacute) Pour compenser cette erreur statique on rajoute le terme inteacutegral

c Asservissement PI

Le correcteur inteacutegral sert principalement agrave supprimer lerreur statique Lideacutee principale est de charger ou inteacutegrer lerreur depuis le deacutebut et dajouter cette erreur agrave la consigne jusquagrave ce quelle devienne nulle Lorsque cette erreur est nulle le terme inteacutegral se stabilise et il compense parfaitement lerreur entre la consigne et la vitesse reacuteelle Deacutemonstration en image

On voit cette fois-ci que le terme inteacutegral a bien fonctionneacute et que lerreur statique est nulle On constate aussi que plus le gain Ki est grand plus le systegraveme converge vite En revanche plus Ki est grand plus le systegraveme oscille et plus le deacutepassement est grand Sur des asservissements en position le terme deacuteriveacute permet de diminuer le deacutepassement et les oscillations Nous allons voir que dans notre cas nous avons quelques problegravemes

d Asservissement PID ou agrave avance de phase

On a donc rajouteacute le terme deacuteriveacute comme tout bon livre dautomatique le preacuteconise et voici les reacutesultats

Cette fois ci jai choisi de repreacutesenter la tension appliqueacutee au moteur (U) le problegraveme est bien plus flagrant ici Vous voyez que lorsque lon ajoute le terme deacuteriveacute la commande est extrecircmement bruiteacutee En reacutealiteacute on somme agrave la commande la deacuteriveacutee de la vitesse reacuteelle que lon multiplie par un gain Kd La deacuteriveacutee dune vitesse est une acceacuteleacuteration cela signifie que lon amplifie tous les bruits dacceacuteleacuteration et en plus on les multiplient par un gain Kd Donc rajoute du bruit amplifieacute dans la commande Alors pourquoi mettent t-ils ce terme deacuteriveacutee dans les livres Simplement parce que ce bruit est typique des asservissement en vitesse Sur des asservissements en position ce problegraveme est moins freacutequent car la deacuteriveacutee de la position est la vitesse

Ici le problegraveme eacutetait visible parce que nous avons reacutealiseacute toutes ces courbes sur un systegraveme reacuteel Si nous avions simuleacute ces reacutesultats lacceacuteleacuteration naurait pas eacuteteacute bruiteacutee et les courbes auraient eacuteteacute parfaites Pour impleacutementer ce PID sur notre robot il a fallu programmer en numeacuterique une deacuteriveacutee et une inteacutegrale

e PID numeacuterique et reacuteglage

Notre premier problegraveme est de programmer le terme inteacutegral Il existe une meacutethode qui consiste agrave estimer la surface entre deux eacutechantillons mais dans notre cas nous avons des problegravemes dus aux bruits et agrave la freacutequence deacutechantillonnage Alors il faut sommer toutes les erreurs depuis de deacutebut

Notre second problegraveme est de programmer le terme deacuteriveacute La meacutethode ici est de calculer la pente entre deux eacutechantillons de e Theacuteoriquement cela revient agrave faire le calcul suivant

Avec la peacuteriode deacutechantillonnage Pour faire un asservissement numeacuterique il faut impeacuterativement avoir une peacuteriode fixe Pour gagner du temps de calcul geacuteneacuteralement on inteacutegre directement dans le gain Kd

Voici un lalgorithme exemple

Ti = 0 Initialise le terme inteacutegral

for ( i=1 i lt= Nb_cycles i++ )

Init_timers (1) Initialise le timer agrave notre peacuteriode 1 ms

Y = Codeur () Stoque la valeur du codeur dans Y Rst_codeur () Remet le codeur agrave zeacutero Ud = Consigne () Mise agrave jour de la consigne e_old=e Stoque e(t-1) e = Ud - Y Calcul de lerreur Ti = Ti + e Calcul de linteacutegral Calcul du PID U = Kp e Terme proportionnel

+ Ki Ti Terme inteacutegral + Kd ( e - e_old ) Terme deacuteriveacute Moteur (U) On applique la consigne

while ( end_timer() ) On attend la fin de la peacuteriode

Pour le reacuteglage des gains Kp Ki et Kd il existe diffeacuterentes meacutethodes Ici nous lavons fait de maniegravere empirique et le reacutesultats est plutocirct bon Linconveacutenient de ces meacutethodes est quelles demandent un modegravele du systegraveme ce qui est geacuteneacuteralement dur agrave produire Il existe

aussi des composants programmables qui permettent de faire directement lasservissement numeacuterique (HCTL 1100 LM629) Ils sont exactement baseacutes sur la meacutethode preacutesenteacutee ici

Pour ce qui est du reacuteglage des correcteurs lrsquooptimal est drsquoutiliser la meacutethode de lrsquooptimum dissymeacutetrique une fois que lrsquoon agrave reacutealiseacute le modegravele du systegraveme La plus part des eacutecoles ne reacutealisent pas ce modegravele et ce limite donc agrave une correction empirique en reacutealisant des tests ou en utilisant la meacutethode Ziegler-Nichols agrave partir de la reacuteponse agrave un eacutechelon de tension

Par la suite nous rappellerons les meacutethodes de Ziegler-Nichols et de lrsquooptimum dissymeacutetrique

f Les meacutethodes de Ziegler-Nichols

Ces meacutethodes fournissent des reacuteglages pour des correcteurs de type PID (pouvant ne comporter quune action Proportionnelle une action Proportionnelle et une action Inteacutegrale ou les 3 actions simultaneacutement) dont la structure est la suivante

bull MEacuteTHODE DE ZIEGLER NICHOLS TEMPORELLE

Elle est adapteacutee aux systegravemes stables en boucle ouverte qui ont une reacuteponse apeacuteriodique La reacuteponse agrave un eacutechelon unitaire du systegraveme physique doit ecirctre enregistreacutee Diffeacuterentes caracteacuteristiques de la reacuteponse obtenue sont mesureacutees

Le modegravele approcheacute utiliseacutee par Ziegler Nichols comporte une constante de temps et un retard pur ou bien un retard pur et un inteacutegrateur

Si le systegraveme physique comporte un inteacutegrateur les mesures de a et de L demeurent disponibles sur le deacutebut de la reacuteponse

Les reacuteglages suggeacutereacutes par la meacutethode temporelle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 1a - -correcteur PI 09a 3L -

correcteur PID 12a 2L L2Concernant le raffinement des reacuteglages augmenter Kp ou diminuer Ti augment les

oscillations de la sortie

bull MEacuteTHODE DE ZIEGLER NICHOLS FREacuteQUENTIELLE

Cette meacutethode convient particuliegraverement bien aux systegravemes instables en boucle ouverte pour lesquels la meacutethode temporelle nest pas envisageable Lexpeacuterimentation se fait sur le systegraveme boucleacute avec un simple gain proportionnel qui doit ecirctre stable Le principe est de modifier la valeur du gain par essai-erreur jusquagrave atteindre la limite de stabiliteacute (pheacutenomegravene de pompage) Il reste agrave relever le gain limite K0 obtenu et agrave mesurer la peacuteriode T0 des oscillations de la reacuteponse obtenue

Les reacuteglages suggeacutereacutes par la meacutethode freacutequentielle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 05 K0 - -correcteur PI 045 K0 08 T0 -

correcteur PID 06 K0 05 T0 0125 T0

A la page Internet suivante vous trouverez un simulateur de cette meacutethode

httpwww-hadocensieginpgfrhadocateliersreglageEmpCorrReglEmpCorrDroithtml

g Meacutethode de lrsquooptimum dyssimeacutetique (voir poly MC06 Chap 5 et 8)

Cette meacutethode srsquoapplique une fois le modegravele reacutealiseacute et mis sous la forme drsquoun second ordre

et on obtient le correcteur PI

pour une surtension deacutesireacutee QdB

Q = 10^(QdB20)λ= radic(Qsup2(Qsup2-1))Δφ = arcos (1 λ)α= ((1+sin(Δφ))cos(Δφ))sup2ωN= ωQαω0= ωQradicαKP= ω0 λ KQ

4 Les microcontrocircleurs

a Avant propos

Cette fiche se veut ecirctre sous la forme dun projet Un projet non termineacute ougrave chacun peut apporter sa contribution (ameacuteliorations adaptations corrections etc)De ce fait ces pages sont ameneacutees agrave eacutevoluer et vous-mecircme pourrez participer agrave leur eacutevolution

Pourquoi avoir choisit un tel mode de travail Tout simplement parce que le sujet est vaste et que des variations sont possibles suivant lutilisation quen feront les diffeacuterentes personnes

Le but de ce projet est de reacutealiser une double asservissement de vitesse (type PID) de deux moteurs sur un seul PIC (type 16F877) Lutiliteacute majeure eacutetant de faire rouler un robot bien droit et agrave la bonne vitesse A quoi ccedila sert plus preacuteciseacutement

Avec un seul PIC ce projet permet aux roboticiens amateurs et chevronneacutes de reacutealiser facilement leur asservissement de vitesse de moteurs agrave courant continu (en geacuteneacuteral les moteurs de propulsions de leur robot mais ccedila peut ecirctre bien sucircr dautres moteurs) La commande de lasservissement pourra se faire agrave terme en liaison seacuterie (deacutejagrave fait) I2C ou par bus ISA

b Avantages

Il existe bien sucircr dautres systegravemes qui gegraverent un asservissement de vitesses Des systegravemes professionnels existent comme les LM629 Ils ont linconveacutenient decirctre cher (et ce pour un seul moteur) et relativement complexes

Pourquoi chercher un fusil pour chasser des moustiques Le double asservissement sur PIC vous coucircte le prix dun PIC soit environ 15Euro pour un 16F877 actuellement et ce pour 2 moteurs Ce double asservissement se veut relativement simple De plus vous pouvez en modifier le programme et ladapter agrave vos besoins

c Inconveacutenients

Les personnes qui auront les moyens preacutefeacutererons opter pour un systegraveme professionnel certainement pour des raisons de fiabiliteacute mais cest agrave leurs risques et peacuterils -)La puissance du PIC eacutetant limiteacutee il ne peut pas reacutealiser des PID trop rapides ou trop complexes Il y a en particulier une limitation sur le nombre dimpulsions par seconde quil est capable de geacuterer

Le langage utiliseacute eacutetant le C il faut une licence du logiciel pour pouvoir modifier et recompiler le code source c Mais le projet se veut geacuteneacuterique Une version donneacutee pourra ecirctre utiliseacute sans recompilation en respectant quelques contraintes

d Asservissement

En fait on pourrait imaginer quil suffirait denvoyer au moteur une puissance constante pour quil tourne tout le temps agrave la mecircme vitesse Ce nest pas vrai du tout Tout dabord 2 moteurs dune mecircme seacuterie nauront pas forceacutement le mecircme comportement Ensuite parce que les niveaux de tension ou dautre diffeacuterences eacutelectriques peuvent jouer Enfin parce que des influences exteacuterieures (obstacles frein meacutecanique du robot) peuvent jouer

Du coup il est tregraves difficile de faire aller un moteur agrave la vitesse voulue Parfois ce nest pas gecircnant mais ccedila peut lecirctre Un exemple classique est le robot avec 2 roues motrices type char une configuration qui est tregraves courante Mais pour que ce robot aille droit il faut que les 2 moteurs aillent exactement agrave la mecircme vitesse

La solution est de faire un asservissement Cest a dire moduler dynamiquement la puissance envoyeacute aux moteurs suivant leur vitesse mesureacutee afin dadapter celle-ci agrave ce qui est deacutesireacuteeCela implique un eacuteleacutement tregraves important pour asservir il faut un capteur de vitesse du moteur En geacuteneacuteral il sagit dun compte-tour qui enverra N impulsions (ou pas) par tour de moteur Ensuite un programme va calculer en fonction de la vitesse mesureacutee du moteur la puissance agrave utiliser

Les asservissements sont constamment en train de chercher leacutequilibre Il faut bien comprendre quils mettent un certain temps agrave latteindre et ce dernier peut aussi ecirctre instable si lasservissement est mal reacutegleacute

Lasservissement quon va utiliser ici est un classique PIDou plus preacuteciseacutement un PI car pour des raisons de vitesses de traitement la composante deacuteriveacutee est laisseacutee de coteacute (mais rien de difficile agrave rajouter)

Le PID ou Proportionnel Inteacutegrale Deacuteriveacute est une meacutethode de calcul dasservissement

Soit Kp Ki et Kd les coefficients proportionnels inteacutegrale et deacuteriveacuteSoit e lerreur Vitesse mesureacutee moins vitesse demandeacuteeSoit Ti le terme inteacutegral dabord initialiseacute agrave 0

Consigne a appliquer (PWM) = Kp e + (1Ki) (Ti += e) + Kd (e - e(t-1))

On pourrait dire des pages et des pages sur le PID et ce nest pas mon but ici Merci de vous reporter au lien ci-dessous

Pour plus de deacutetails sur le PID la page de lANCR httpwwwancrorgfichtechactionpidindexhtmChez les Fribottes la Simulation de Jean-Claude httpwwwwikifreefrWiKiFriindexphpSimulateur20de20PID

e Le pic

Le PIC est un petit microcontrocircleur assez bon marche et simple a programmer comme a utiliser

La aussi je vais pas rentrer dans les deacutetails vous pouvez vous reporter agrave la bdtech du site Fribotte et en particulier aux cours de Bigonoff

Le PIC est ici programmeacute en C voir la page Fribotte ici Lutilisation du langage C permet dalleacuteger consideacuterablement le deacuteveloppement dune application compliqueacutee

2 Module AVR

httpwwwenseirbfr~matzfravrphp

Tregraves peu de renseignement sur ce module sinon ces informations drsquoun eacutetudiant de lrsquoEnseirb

Depuis plusieurs anneacutees je participe agrave la coupe de robotique E=M6 dont lobjectif pour chaque eacutequipe est de fabriquer un robot autonome devant se conformer agrave un regraveglement Pour plus dinfos vous pouvez vous rendre sur le site de mon eacutequipe Microb Technology ou bien sur le site de Planegravete Sciences lorganisme beacuteneacutevole qui organise cette compeacutetition

Jai deacutecouvert en 2001 les microcontrocircleurs Atmel AVR auxquels je me suis beaucoup attacheacute dune part parce quils sont assez performants pour des microcontrocircleurs 8 bits mais aussi et surtout car le fameux compilateur libre GCC est capable de compiler du code C pour ces petites becirctes Il existe de surcroicirct plusieurs outils libres permettant de les programmer de les simuler etc

Le but de ce projet est donc de deacutevelopper des modules servant dinterface geacuteneacuterique avec le hardware du microcontrocircleur quel que soit la version (par exemple les UART inclus dans les AVR AtMega sont diffeacuterents de ceux preacutesents dans les petits AVR) et de deacutevelopper des modules utiles pour certaines utilisations usuelles et pas seulement pour la coupe E=M6 (codage de hamming asservissement chiffrement etc)

Vous pouvez contacter leacutequipe de deacuteveloppement agrave avr-devdroids-corporg Pour le moment aucune release na eacuteteacute faite mais le travail est deacutejagrave bien avanceacute Chaque soir un screenshot du CVS est reacutealiseacute Il peut ne pas compiler mais normalement ccedila devrait fonctionner Voici le lien

3 Modules drsquoasservissement analogique laquo Escap raquo

Nous avons essayeacute de reacutecupeacuterer les cartes de commande Escap pour moteurs Escap qui avaient eacuteteacute utiliseacutees en 96 et 98 avec succegraves

Nous les avons monteacutes sur une base roulante qui pesait en tout 74 kgVoici grosso-modo leurs avantages et leurs inconveacutenients (pour les notices techniques voir le rapport 96 ou 98)

a Avantages

Cette carte inclut directement un asservissement avec correcteur PI la commande de puissance les ponts en H

Elle est tregraves facile agrave utiliser Elle est speacutecialement conccedilue pour les moteurs Escap que nous avons donc

parfaitement adapteacutee

b Inconveacutenients

Les moteurs ne fonctionnent correctement que sous 24v Les cartes et les moteurs semblent assez gourment Les cartes nantis de gros radiateurs sont relativement encombrantes Les tachymegravetres monteacutes sur les moteurs ne donnent pas une indication de position

mais de vitesse (qui plus est en analogique)

Nous avons preacutefeacutereacute refaire la partie commande car celle de 1996 souffrait de quelques deacutefauts (cf rapport 1996)

La conversion numeacuterique analogique

Pour reacutealiser la conversion numeacuterique analogique nous avons choisit un pont agrave reacutesistance R-2R

Nous pouvons consideacuterer que chaque bit est relieacute agrave un geacuteneacuterateur ideacuteal de tension (qui deacutelivre 0v ou 5v) Par conseacutequent la reacutesistance eacutequivalente quelque soit lrsquoeacutetat des bits et quelques soit le nombre de bits vue entre la sortie et la masse sera eacutegal agrave R

La tension Vs en fonction de lrsquoeacutetat des bits sera

Ce type de CAN eacutetant tregraves classique nous nrsquoindiquerons pas les deacutemonstrations toutefois vous pourrez les trouver tregraves facilement sur Internet ou sur le Cd-rom drsquoannexes joint au dossier

Le montage de Thevenin eacutequivalent est donc

Nous avons jugeacute qursquoune discreacutetisation sur 8 bits eacutetait un peu superflu crsquoest pourquoi nous nous contenterons de 4 bits (ce qui repreacutesentent quand mecircme 16 niveaux de vitesse)

bull Lrsquoadaptation du niveau de tension

Nous avons agrave la sortie du CAN une tension qui srsquoeacutetend de 0 agrave 5v or la commande des cartes Escap ce fait entre -5v et +5v

On peut voir cette adaptation comme lrsquoajout drsquoun offset de -25v et une amplification de gain 2

Voici le montage reacutealisant cette conversion

M1 est un montage suiveur qui lsquorecopiersquo la tension aux bornes de P1 mais sous une impeacutedance constante et eacutegale agrave 4R En 1996 lrsquoeacutequipe avait brancheacute P1 directement sur M3 mais cela a pour inconveacutenient de faire varier agrave la fois lrsquooffset et la penteLe potentiomegravetre P1 permet drsquoajuster lrsquooffset (permet par conseacutequent de reacutegler lrsquoarrecirct complet de moteur) (La valeur theacuteorique de lrsquooffset est 5V (cf formule en M3))

M2 est aussi un montage suiveur Le potentiomegravetre P2 permet drsquoajuster la pente (qui doit avoir un coefficient directeur de 2) Comme M2 est connecteacute au CAN dont la reacutesistance interne est de R P2 doit ecirctre a peut precirct eacutegal agrave R de la sorte la branche aura une reacutesistance eacutequivalente de 2R

M3 Sommateur (Vs = - 2 (Ve + Voffset))

Qursquoelle valeur choisir pour R

Theacuteoriquement on peut choisir nrsquoimporte quelle valeur pour R mais en pratique si R est trop petite une intensiteacute importante serait consommeacutee sans raison et si R est trop grande la forte impeacutedance du montage le rendra tregraves sensible aux parasites (secteur moteurshellip)Ce montage a eacuteteacute testeacute et fonctionne correctement pour R=5k les amplificateurs opeacuterationnels utiliseacutes sont des LM324 mais drsquoautres seraient tout agrave fait envisageables (peu de contraintes de vitesse et de tensions de deacutechets)

4 Conclusion

Nous avons preacutefeacutereacute ne pas utiliser les cartes Escap car les moteurs ne renvoient pas une position sous forme drsquoimpulsion mais une vitesse Etant donneacute que nous avions envisageacute un repeacuterage par odomeacutetrie cela compliquait consideacuterablement la tache

Toutefois il faut savoir que cette solution a eacuteteacute testeacutee et fonctionne tregraves bien (bonne preacutecision bonne dynamique) ainsi dans le cas ougrave le repeacuterage ne se fait pas par odomeacutetrie mais des balises exteacuterieures sachez que cette solution est tregraves pratique agrave utiliser En effet pour imposer une vitesse il suffit au microcontrocircleur drsquoappliquer sur un port un mot binaire correspondant agrave la vitesse voulue hellip et crsquoest tout La carte Escap se charge du reste

5 Carte drsquoasservissement numeacuterique laquo artisanale raquo

La carte reacutealiseacutee baseacutee sur un microcontrocircleur PIC 16F877A srsquoest aveacutereacutee fonctionnelle mais les tests drsquoalgorithmes drsquoasservissement nrsquoont pas eacuteteacute effectueacutesEn effet lrsquoutilisation de cette solution neacutecessite un microcontrocircleur deacutedieacute agrave lrsquoasservissement capable de communiquer via un protocole agrave deacutefinir avec la laquo carte megravere raquo (centralisant les retours des autres capteurs du robot et agissant sur les diffeacuterents actionneurs en fonction de la strateacutegie)Or afin de limiter le nombre de microcontrocircleurs sur le robot et du fait que lrsquoon dispose drsquoun budget suffisant nous avons deacutecideacute drsquoessayer drsquoutiliser des composants speacuteciaux reacutealisant lrsquoasservissement

Le systegraveme se deacutecompose en

- Un microcontrocircleur pour appliquer la PWM asservir et commander- Une carte de puissance pour chaque moteur baseacutee sur un LMD18200- Une carte compteur drsquoimpulsions pour les codeurs

Afin de favoriser lrsquointeractiviteacute et les reacuteglages jrsquoai ajouteacute une carte afficheur LCD avec 6 boutons sur la carte microcontrocircleur

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 15: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

d Choix deacutefinitif

Gracircce aux caracteacuteristiques preacuteceacutedentes nous avons choisi les RE035GPLG52 du fait de leurs disponibiliteacute caracteacuteristiques et prix En ce qui concerne la transmission par renvoi drsquoangle nous avons opteacute pour des systegravemes deacutejagrave tout fait qui permettent une plus grande preacutecision un meilleur rendement et un meilleur rapport qualiteacute prix que les montages artisanaux Voici la reacutefeacuterence que nous avons retenue

bull Reacutefeacuterence 748-437 chez Radiospares ou B332312 chez HPCeurope avec les caracteacuteristiques suivantes Rr = 1 C max = 068 Nm V max = 1500 trmin-1 η = 094 prix RS 5750 euro piegravece et prix HPC 52 euro piegravece (avec -10 en tant que participant agrave la Coupe) (Voir les autres caracteacuteristiques en annexes)Pour des raisons de disponibiliteacute nous avons commandeacute ces 2 piegraveces chez

Radiospares En ce qui concerne la liaison entre lrsquoarbre moteur et lrsquoarbre de la transmission nous

avons deacutecideacute drsquousiner un accouplement rigide dont les plans se trouvent en annexes Du coteacute moteur le blocage en rotation est assureacute par une vis de pression qui se trouve dans la gorge preacutevue initialement pour la clavette De lrsquoautre coteacute nous avons usineacute un meacuteplat sur lrsquoarbre du reacuteducteur meacuteplat sur lequel vient appuyer une autre vis de pression

3 Les supports des moteurs

A lrsquoorigine nous avions penseacute mettre les moteurs et les roues coaxiaux nous avions donc imagineacute un systegraveme de bride qui permettrait de bloquer le moteur selon 2 axes de translation et 2 axes de rotation gracircce agrave 2 vis de serrage associeacutee agrave une eacutequerre qui permettait le blocage selon le dernier axe de translation et de rotation Le tout eacutetait fixeacute sur une plaque de fond qui constituerait la base du robot

Voici donc a quoi ressembler cette bride (pour un moteur)

Bride de maintien pour moteur de faible longueur

Bride monteacutee sur la plaque de fond avec un moteur

Ensuite lorsque nous sommes passeacutes agrave la solution avec renvoi drsquoangle nous avons deacutecideacute drsquousiner une piegravece certes complexe mais qui proposait une universaliteacute notamment au niveau des diffeacuterentes positions des moteurs (verticale et horizontale) aspect qui satisfait pleinement au cahier des charges Cette piegravece que par la suite nous appellerons Bloc Moteur doit permettre la mise et le maintien en position du motoreacuteducteur la mise et le maintien en position du reacuteducteur la fixation de lrsquoensemble au sein du robot notamment sur la plaque de fond

Apregraves une petite eacutetude nous sommes arriveacutes agrave une piegravece de ce type

Bloc moteur pour la solution avec renvoi dangle

Cette nouvelle piegravece agrave de nombreux avantages

bull Elle nous permet de pouvoir incorporer le renvoi drsquoangle bull De maintenir les piegraveces entre-elles et de limiter les efforts directs sur les

diffeacuterents eacuteleacutementsbull Drsquoecirctre installeacute agrave lrsquohorizontale ou agrave la verticale

Effectivement lors de la conception du bloc moteur nous avons penseacute aux anneacutees futures et nous avons donc preacutevu un montage des moteurs agrave la verticale ou agrave lrsquohorizontale

En position verticale

En position horizontale

4 Les roues

Comme vu lors de la veille technologique les chenilles ont quasiment disparu de la compeacutetition Ceci est ducirc au fait que cette technologie est difficile agrave mettre en œuvre et que les regraveglements proposent des aires de jeux totalement planes

Or cette anneacutee un fosseacute fait son apparition dans le regraveglement Ce fosseacute de 36 mm de profondeur vient seacuteparer deux aires de jeu Une neacutecessiteacute de traverser le fosseacute apparaicirct donc pour aller renverser les quilles de lrsquoadversaire

Deux solutions sont alors possibles bull Traverser sur le pont aleacuteatoirebull Traverser le fosseacute

Si nous choisissons de traverser par le pont lrsquoideacutee de garder notre systegraveme de roues est correcte par contre un systegraveme agrave chenille permettrait de passer par le fosseacute

Apregraves reacuteflexion de lrsquoeacutequipe PR et des membres de la Coupe E=M6 la solution de traverser par le pont est retenue Ce qui nous a conduit tout droit vers la solution agrave roues

Les roues utiliseacutees sont des roues de roller de diamegravetre 80mm et drsquoune largeur de 22mm Ces roues sont relieacutees agrave lrsquoarbre drsquoun renvoi drsquoangle par lrsquointermeacutediaire drsquoun accouplement en aluminium

5 La base

Pour la base du robot il nous a parut indispensable de dimensionner la plaque de fond en eacutepaisseur De plus afin de maintenir la solution de modulariteacute de lrsquoensemble moteurs ndash roues nous avons deacutecideacute de fixer les deux supports moteurs sur un platine qui sera elle-mecircme fixeacutee agrave la plaque de fond du robot

Premiegraverement nous avons effectueacute un dimensionnement succinct de la platine

a Reacuteaction drsquoappui

0=sum Fx OK

0=sum Fy qLRbRaorRbRaqL210 =+=++minus

qLRa21=

AB = 027 m = L

P = mg P = 15 x 10 = 150 N

Q = 150 N270 mm soit q = 555 Nm

Bille folle

Accouplement

Bloc moteur

Renvoi drsquoangle

Platine

Base du robot

Motoreacuteducteur

Roue

b Moment de flexion

0 =sum= cMMf

02

sup2 =minus+ RaxqxMf

sup221

21 qxqLxMf minus=

c Flegraveche

)( xMfEIY =

sup221

21 qxqLxEIY minus=

161sup2

41 3 CqxqLxEIY +minus=

21241

121 43 CxCqxqLxEIY ++minus=

d Conditions aux limites

Y (x=0) = 0 C2 = 0

Y (x=L) = 0 012412

44

=+minus LCqLqL

241

4qLLC =

241

3qLC =

On obtient donc

xqLqxqLxEIY 343

241

241

121 +minus=

De mecircme

+minus=

242412

343 xLxLxEIqY

On sait que bull E = 210 000 10^6bull Y = 1 10^-3 mbull Q = 555 Nmbull L = 027 m

bull12

3bhI = b = 006 m

+

minus

=24

22416

128

343 LL

LLL

EYqI

36

4

0010102100000601052155512timestimes

timestimes=minus

h

Et enfin on trouve h lrsquoeacutepaisseur de la platine h= 43 mm

Apregraves reacuteflexion nous nous sommes rendu compte que ce calcul nrsquoeacutetait pas rigoureux car nous avons consideacutereacute la theacuteorie des poutres or dans notre cas nous ne pouvons satisfaire cette theacuteorie (Longueur de la section = 10 x la largeur de la section)

Il nous faut donc utiliser un modegravele plus preacutecis crsquoest pourquoi nous avons deacutecideacute de faire un calcul par eacuteleacutements finis sous Ideacuteas Ainsi nous trouvons une eacutepaisseur h = 32 mm

Il nous faut donc une platine de plus de 3 mm Etant donneacute que la platine sera solidairement fixeacutee agrave la base du robot nous avons deacutecideacute de prendre une eacutepaisseur de platine de 2 mm et une eacutepaisseur de base de robot de 2 mm Nous obtenons donc une eacutepaisseur totale de 4 mm Ainsi nous devrions avoir sous une charge de 15 kg moins drsquoun millimegravetre de flexion de la base du robot

6 Reacutesultats

Assemblage en position horizontale

Vue eacuteclateacutee en position verticale

Photo de lrsquoassemblage roues ndash blocs moteurs ndash moteurs ndash platine

Partie C Lrsquoeacutelectronique20 Les batteries

Afin de pouvoir choisir les batteries approprieacutees agrave notre application nous devons dans un premier temps faire une estimation de la consommation drsquoeacutenergie totale avec les pointes de courant envisageacutees dans notre robotIl est agrave noter que nous ne connaissons pas encore en deacutetail tous les eacuteleacutements annexes qui seront implanteacutes dans le robot comme par exemple les capteurs et actionneurs diverses qui seront choisis en fonction des objectifs technologiques atteints ou non de lrsquoassociation et de la strateacutegie finaleDans le but de pouvoir utiliser agrave nouveau dans lrsquoavenir notre base roulante nous avons choisi de surestimer les besoins en eacutenergie de sorte agrave ne pas ecirctre pris au deacutepourvu

La consommation pourrait se deacutecomposer ainsi - 2 moteurs de 24V sous 21A soit 1008 Watts pendant 100 du temps- 3 actionneurs de 21 Watts chacun soit 63 Watts pendant 50 du temps- 3A pour lrsquoeacutelectronique sous 5V soit 15 Watts pendant 100 du temps (Asservissement carte de commandes capteurs)

Ce qui nous fait au total une consommation maximale ~180 WattsLa consommation permanente devrait ecirctre ~147 Watts permanents il faut donc que les batteries puissent deacutebiter un courant de ~6 A sous 24 V durant le fonctionnement du robot

Apregraves une longue recherche on a pu reacutealiser le tableau comparatif des batteries suivant

typeDensiteacute

deacutenergie (WhKg)

Densiteacute deacutenergie (WhL)

auto-deacutecharge (mois)

voltage dune cellule (V)

temps de charge rapide

plomb 35 111 5 agrave 10 2 8h agrave 15h

NiCd (Nickel Cadnium) 50 94 10 agrave 20 12 1h30min

NiMH (Nickel Metal Hydride) 80 135 20 agrave 30 13 2h agrave 4h

Lithium Ion 100 196 5 agrave 10 36 2h agrave 4h

Lithium polymer 150 200 5 agrave 10 36 2h agrave 4h

AlKaline rechargeable 80 15 2h agrave 3h

type

cycle de charge-deacutecharge avant

que capaciteacute passe de 100 agrave

80

Courant max Courant max pic effet meacutemoire estimation

(euroWh) prixcycles

plomb 200 agrave 300 02C 05C M 0895 0003

NiCd (Nickel Cadnium) 1500 1C 20C H 416 0003

NiMH (Nickel Metal Hydride) 300 agrave 500 05C 5C L 2 0004

Lithium Ion 500 agrave 1000 1C 2C L 8 0008

Lithium polymer 300 agrave 500 1C 2C agrave 5C L 32 0006

AlKaline rechargeable 50 02C 05C H 178 0036

Effet meacutemoire L (Low) M (Medium) H (High)Courant max C signifie capaciteacute par exemple une batterie qui peut deacutelivrer un courant max de 1C de 4Ah pourra donc deacutelivrer 4A au maximum sans risque de deacuteteacuterioration

Nous nous sommes inteacuteresseacutes au courant maximum et au temps de charge rapide pour notre choix de batteriesLe type de batterie qui semble le plus approprieacute pour nous est le type Nickel-Cadnium parfaitement adapteacute au pic drsquoappel de courant que provoquent des moteurs pouvant supporter des charges rapides en 1h30min seulement afin de devoir preacutevoir trop de jeux de batteries diffeacuterents

Les batteries LI-Ion ou LI-Polymer preacutesentent une densiteacute eacutenergeacutetique tregraves inteacuteressante mais leur prix est beaucoup plus eacuteleveacute agrave lrsquoachat et de plus dans notre application roulant sur un sol peu accidenteacute la masse pouvant ecirctre transporteacutee est suffisante pour le type NiCd

Les batteries LI-Ion ou LI-Polymer sont plus adapteacutees agrave lrsquoaeacuteromodeacutelisme ou au petit appareil eacutelectroniqueQuant aux batteries au plomb qui sont vraiment bon marcheacute le courant maximum supporteacute est trop faible est supposerait drsquoavoir une forte capaciteacute

Nous voulons avoir une autonomie de 30 minutes il nous faut donc une eacutenergie de 735 WhOr sous 24 V les batteries doivent avoir une capaciteacute de ~3 AhComme les batteries NiCd peuvent deacutebiter un courant maximum de 1C (une fois leur capaciteacute) nous devons donc prendre des batteries de 6Ah sous 24 V ce qui nous donnera une autonomie de 1 heure

Il faudra donc soit acheter un bloc accumulateur NiCd de 24 V 6 Ah srsquoil existe dans le commerce soit le reacutealiser nous mecircme en assemblant diffeacuterents eacuteleacutements

Rappelons que lrsquoassociation en seacuterie permet drsquoadditionner les tensions des eacuteleacutements associeacutes et que lrsquoassociation en parallegravele permet drsquoadditionner les courants deacutebiteacutes

Par exemple des eacuteleacutements de 12 V chacun pour 3 Ah srsquoassocieraient ainsi

Soit deux seacuteries de 20 eacuteleacutements eacutequivalentes agrave 24 V et faisant une capaciteacute de 3 Ah chacune

Il est possible de reacutepartir les accumulateurs en diffeacuterents paquets pour faciliter le rangement dans le robot ou reacutepartir la masse ou eacuteventuellement trouver des packs dans le commerce

Dans le cas de lrsquoUV PR le choix des batteries reste pour le moment sur les NiCd mais pour les essais pratiques on utilisera des batteries au plomb que lrsquoon possegravede deacutejagrave drsquoautant plus que les essais sont reacutealiseacutes avec les moteurs de propulsion et lrsquoasservissement seul ce qui

neacutecessite un deacutebit de courant de 24105 = 4375 A sur 2 batteries soit asymp2187 A

Comme les batteries au plomb peuvent deacutebiter 02C il nous en faudrait des de asymp 109 Ah

Or les essais de la base roulante ne seront que de courtes dureacutees et lrsquoon se contentera donc drsquoutiliser des batteries de 6 Ah pour des raisons de volume mecircme si elles ne sont pas vraiment bien dimensionneacutees

21 La commande des moteurs

Dans un premier temps nous verrons un bref reacutecapitulatif des cartes et modules drsquoasservissement du commerce

Pour la commande les moteurs plusieurs solutions ont eacuteteacute envisageacutees - Un asservissement lsquotout faitrsquo analogique modules laquo Escap raquo- Une solution lsquoartisanalersquo carte avec asservissement numeacuterique- Un asservissement lsquotout faitrsquo numeacuterique circuits laquo LM629 raquo

a Comparatifs des modules drsquoasservissement et calcul des correcteurs

Veille technologique sur les systegravemes drsquoasservissement utiliseacutes par les diffeacuterentes eacutecoles de la coupe E= M6

Le but de cette partie est drsquoeacutetudier les principales techniques drsquoasservissement utiliseacutees par les eacutecoles de la Coupe E=M6 Ce document est loin drsquoecirctre exhaustif et servira de base agrave compleacuteter et actualiser pour les semestres et eacutequipes prochaines

Apregraves une eacutetude sur plus drsquoune trentaine drsquoeacutecoles il ressort trois formes drsquoasservissement la plus utiliseacutee agrave 85 est du type PID en majoriteacute reacuteduit au PI ensuite viennent les microcontrocircleurs PIC associeacutes au PID et les modules AVR nous allons par la suite deacutetailler ces trois solutions Il existe eacutegalement des systegravemes de controcircle dits agrave retour drsquoeacutetat jamais utiliseacutes jusqursquoagrave preacutesent pour la Coupe crsquoest pourquoi nous ne deacutevelopperons pas son approche

3 Systegraveme PID

httpwwwancrorgfichtechactionpidindexhtm

a Principe

Pour pouvoir tester un asservissement il faut dabord reacutealiser une plate-forme de deacuteveloppement le plus geacuteneacuteralement du type suivant Mais pour commencer un brin de theacuteorie illustreacute par des exemples Le scheacutema de principe est repreacutesenteacute ci-dessous

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

Nous avons bien un scheacutema en boucle fermeacutee puisque la sortie du systegraveme est reacuteinjecteacutee dans lentreacutee Les trois blocs bleus correspondent chacun agrave une fonctionnaliteacute Ki est le coefficient inteacutegral Kp le coefficient proportionnel et Kd le coefficient deacuteriveacute Chacun de ces coefficients a une fonctionnaliteacute bien preacutecise Commenccedilons par le plus simple le proportionnel

b Asservissement P

Lasservissement proportionnel est essentiel au fonctionnement du PID Il permet essentiellement de donner de la puissance au moteur Voici quelques reacutesultats dexpeacuterimentations avec Ki=0 et Kd=0

La courbe noire repreacutesente la consigne que lon deacutesire atteindre (Ud) cest un eacutechelon de valeur 32 La courbe bleue repreacutesente la vitesse reacuteelle du systegraveme (Y) Comme vous pouvez le constater plus Kp est grand plus le systegraveme converge vite vers sa valeur finale Mais en contrepartie pour des valeurs de Kp trop grandes le systegraveme oscille Mais lagrave nest pas notre plus gros problegraveme en effet sur ces courbes on voit nettement que la vitesse du moteur natteint jamais la vitesse deacutesireacutee Cest ce que lon appelle lerreur statique elle correspond agrave la diffeacuterence entre la vitesse reacuteelle et la vitesse deacutesireacutee en reacutegime eacutetablie (une fois que le systegraveme sest stabiliseacute) Pour compenser cette erreur statique on rajoute le terme inteacutegral

c Asservissement PI

Le correcteur inteacutegral sert principalement agrave supprimer lerreur statique Lideacutee principale est de charger ou inteacutegrer lerreur depuis le deacutebut et dajouter cette erreur agrave la consigne jusquagrave ce quelle devienne nulle Lorsque cette erreur est nulle le terme inteacutegral se stabilise et il compense parfaitement lerreur entre la consigne et la vitesse reacuteelle Deacutemonstration en image

On voit cette fois-ci que le terme inteacutegral a bien fonctionneacute et que lerreur statique est nulle On constate aussi que plus le gain Ki est grand plus le systegraveme converge vite En revanche plus Ki est grand plus le systegraveme oscille et plus le deacutepassement est grand Sur des asservissements en position le terme deacuteriveacute permet de diminuer le deacutepassement et les oscillations Nous allons voir que dans notre cas nous avons quelques problegravemes

d Asservissement PID ou agrave avance de phase

On a donc rajouteacute le terme deacuteriveacute comme tout bon livre dautomatique le preacuteconise et voici les reacutesultats

Cette fois ci jai choisi de repreacutesenter la tension appliqueacutee au moteur (U) le problegraveme est bien plus flagrant ici Vous voyez que lorsque lon ajoute le terme deacuteriveacute la commande est extrecircmement bruiteacutee En reacutealiteacute on somme agrave la commande la deacuteriveacutee de la vitesse reacuteelle que lon multiplie par un gain Kd La deacuteriveacutee dune vitesse est une acceacuteleacuteration cela signifie que lon amplifie tous les bruits dacceacuteleacuteration et en plus on les multiplient par un gain Kd Donc rajoute du bruit amplifieacute dans la commande Alors pourquoi mettent t-ils ce terme deacuteriveacutee dans les livres Simplement parce que ce bruit est typique des asservissement en vitesse Sur des asservissements en position ce problegraveme est moins freacutequent car la deacuteriveacutee de la position est la vitesse

Ici le problegraveme eacutetait visible parce que nous avons reacutealiseacute toutes ces courbes sur un systegraveme reacuteel Si nous avions simuleacute ces reacutesultats lacceacuteleacuteration naurait pas eacuteteacute bruiteacutee et les courbes auraient eacuteteacute parfaites Pour impleacutementer ce PID sur notre robot il a fallu programmer en numeacuterique une deacuteriveacutee et une inteacutegrale

e PID numeacuterique et reacuteglage

Notre premier problegraveme est de programmer le terme inteacutegral Il existe une meacutethode qui consiste agrave estimer la surface entre deux eacutechantillons mais dans notre cas nous avons des problegravemes dus aux bruits et agrave la freacutequence deacutechantillonnage Alors il faut sommer toutes les erreurs depuis de deacutebut

Notre second problegraveme est de programmer le terme deacuteriveacute La meacutethode ici est de calculer la pente entre deux eacutechantillons de e Theacuteoriquement cela revient agrave faire le calcul suivant

Avec la peacuteriode deacutechantillonnage Pour faire un asservissement numeacuterique il faut impeacuterativement avoir une peacuteriode fixe Pour gagner du temps de calcul geacuteneacuteralement on inteacutegre directement dans le gain Kd

Voici un lalgorithme exemple

Ti = 0 Initialise le terme inteacutegral

for ( i=1 i lt= Nb_cycles i++ )

Init_timers (1) Initialise le timer agrave notre peacuteriode 1 ms

Y = Codeur () Stoque la valeur du codeur dans Y Rst_codeur () Remet le codeur agrave zeacutero Ud = Consigne () Mise agrave jour de la consigne e_old=e Stoque e(t-1) e = Ud - Y Calcul de lerreur Ti = Ti + e Calcul de linteacutegral Calcul du PID U = Kp e Terme proportionnel

+ Ki Ti Terme inteacutegral + Kd ( e - e_old ) Terme deacuteriveacute Moteur (U) On applique la consigne

while ( end_timer() ) On attend la fin de la peacuteriode

Pour le reacuteglage des gains Kp Ki et Kd il existe diffeacuterentes meacutethodes Ici nous lavons fait de maniegravere empirique et le reacutesultats est plutocirct bon Linconveacutenient de ces meacutethodes est quelles demandent un modegravele du systegraveme ce qui est geacuteneacuteralement dur agrave produire Il existe

aussi des composants programmables qui permettent de faire directement lasservissement numeacuterique (HCTL 1100 LM629) Ils sont exactement baseacutes sur la meacutethode preacutesenteacutee ici

Pour ce qui est du reacuteglage des correcteurs lrsquooptimal est drsquoutiliser la meacutethode de lrsquooptimum dissymeacutetrique une fois que lrsquoon agrave reacutealiseacute le modegravele du systegraveme La plus part des eacutecoles ne reacutealisent pas ce modegravele et ce limite donc agrave une correction empirique en reacutealisant des tests ou en utilisant la meacutethode Ziegler-Nichols agrave partir de la reacuteponse agrave un eacutechelon de tension

Par la suite nous rappellerons les meacutethodes de Ziegler-Nichols et de lrsquooptimum dissymeacutetrique

f Les meacutethodes de Ziegler-Nichols

Ces meacutethodes fournissent des reacuteglages pour des correcteurs de type PID (pouvant ne comporter quune action Proportionnelle une action Proportionnelle et une action Inteacutegrale ou les 3 actions simultaneacutement) dont la structure est la suivante

bull MEacuteTHODE DE ZIEGLER NICHOLS TEMPORELLE

Elle est adapteacutee aux systegravemes stables en boucle ouverte qui ont une reacuteponse apeacuteriodique La reacuteponse agrave un eacutechelon unitaire du systegraveme physique doit ecirctre enregistreacutee Diffeacuterentes caracteacuteristiques de la reacuteponse obtenue sont mesureacutees

Le modegravele approcheacute utiliseacutee par Ziegler Nichols comporte une constante de temps et un retard pur ou bien un retard pur et un inteacutegrateur

Si le systegraveme physique comporte un inteacutegrateur les mesures de a et de L demeurent disponibles sur le deacutebut de la reacuteponse

Les reacuteglages suggeacutereacutes par la meacutethode temporelle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 1a - -correcteur PI 09a 3L -

correcteur PID 12a 2L L2Concernant le raffinement des reacuteglages augmenter Kp ou diminuer Ti augment les

oscillations de la sortie

bull MEacuteTHODE DE ZIEGLER NICHOLS FREacuteQUENTIELLE

Cette meacutethode convient particuliegraverement bien aux systegravemes instables en boucle ouverte pour lesquels la meacutethode temporelle nest pas envisageable Lexpeacuterimentation se fait sur le systegraveme boucleacute avec un simple gain proportionnel qui doit ecirctre stable Le principe est de modifier la valeur du gain par essai-erreur jusquagrave atteindre la limite de stabiliteacute (pheacutenomegravene de pompage) Il reste agrave relever le gain limite K0 obtenu et agrave mesurer la peacuteriode T0 des oscillations de la reacuteponse obtenue

Les reacuteglages suggeacutereacutes par la meacutethode freacutequentielle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 05 K0 - -correcteur PI 045 K0 08 T0 -

correcteur PID 06 K0 05 T0 0125 T0

A la page Internet suivante vous trouverez un simulateur de cette meacutethode

httpwww-hadocensieginpgfrhadocateliersreglageEmpCorrReglEmpCorrDroithtml

g Meacutethode de lrsquooptimum dyssimeacutetique (voir poly MC06 Chap 5 et 8)

Cette meacutethode srsquoapplique une fois le modegravele reacutealiseacute et mis sous la forme drsquoun second ordre

et on obtient le correcteur PI

pour une surtension deacutesireacutee QdB

Q = 10^(QdB20)λ= radic(Qsup2(Qsup2-1))Δφ = arcos (1 λ)α= ((1+sin(Δφ))cos(Δφ))sup2ωN= ωQαω0= ωQradicαKP= ω0 λ KQ

4 Les microcontrocircleurs

a Avant propos

Cette fiche se veut ecirctre sous la forme dun projet Un projet non termineacute ougrave chacun peut apporter sa contribution (ameacuteliorations adaptations corrections etc)De ce fait ces pages sont ameneacutees agrave eacutevoluer et vous-mecircme pourrez participer agrave leur eacutevolution

Pourquoi avoir choisit un tel mode de travail Tout simplement parce que le sujet est vaste et que des variations sont possibles suivant lutilisation quen feront les diffeacuterentes personnes

Le but de ce projet est de reacutealiser une double asservissement de vitesse (type PID) de deux moteurs sur un seul PIC (type 16F877) Lutiliteacute majeure eacutetant de faire rouler un robot bien droit et agrave la bonne vitesse A quoi ccedila sert plus preacuteciseacutement

Avec un seul PIC ce projet permet aux roboticiens amateurs et chevronneacutes de reacutealiser facilement leur asservissement de vitesse de moteurs agrave courant continu (en geacuteneacuteral les moteurs de propulsions de leur robot mais ccedila peut ecirctre bien sucircr dautres moteurs) La commande de lasservissement pourra se faire agrave terme en liaison seacuterie (deacutejagrave fait) I2C ou par bus ISA

b Avantages

Il existe bien sucircr dautres systegravemes qui gegraverent un asservissement de vitesses Des systegravemes professionnels existent comme les LM629 Ils ont linconveacutenient decirctre cher (et ce pour un seul moteur) et relativement complexes

Pourquoi chercher un fusil pour chasser des moustiques Le double asservissement sur PIC vous coucircte le prix dun PIC soit environ 15Euro pour un 16F877 actuellement et ce pour 2 moteurs Ce double asservissement se veut relativement simple De plus vous pouvez en modifier le programme et ladapter agrave vos besoins

c Inconveacutenients

Les personnes qui auront les moyens preacutefeacutererons opter pour un systegraveme professionnel certainement pour des raisons de fiabiliteacute mais cest agrave leurs risques et peacuterils -)La puissance du PIC eacutetant limiteacutee il ne peut pas reacutealiser des PID trop rapides ou trop complexes Il y a en particulier une limitation sur le nombre dimpulsions par seconde quil est capable de geacuterer

Le langage utiliseacute eacutetant le C il faut une licence du logiciel pour pouvoir modifier et recompiler le code source c Mais le projet se veut geacuteneacuterique Une version donneacutee pourra ecirctre utiliseacute sans recompilation en respectant quelques contraintes

d Asservissement

En fait on pourrait imaginer quil suffirait denvoyer au moteur une puissance constante pour quil tourne tout le temps agrave la mecircme vitesse Ce nest pas vrai du tout Tout dabord 2 moteurs dune mecircme seacuterie nauront pas forceacutement le mecircme comportement Ensuite parce que les niveaux de tension ou dautre diffeacuterences eacutelectriques peuvent jouer Enfin parce que des influences exteacuterieures (obstacles frein meacutecanique du robot) peuvent jouer

Du coup il est tregraves difficile de faire aller un moteur agrave la vitesse voulue Parfois ce nest pas gecircnant mais ccedila peut lecirctre Un exemple classique est le robot avec 2 roues motrices type char une configuration qui est tregraves courante Mais pour que ce robot aille droit il faut que les 2 moteurs aillent exactement agrave la mecircme vitesse

La solution est de faire un asservissement Cest a dire moduler dynamiquement la puissance envoyeacute aux moteurs suivant leur vitesse mesureacutee afin dadapter celle-ci agrave ce qui est deacutesireacuteeCela implique un eacuteleacutement tregraves important pour asservir il faut un capteur de vitesse du moteur En geacuteneacuteral il sagit dun compte-tour qui enverra N impulsions (ou pas) par tour de moteur Ensuite un programme va calculer en fonction de la vitesse mesureacutee du moteur la puissance agrave utiliser

Les asservissements sont constamment en train de chercher leacutequilibre Il faut bien comprendre quils mettent un certain temps agrave latteindre et ce dernier peut aussi ecirctre instable si lasservissement est mal reacutegleacute

Lasservissement quon va utiliser ici est un classique PIDou plus preacuteciseacutement un PI car pour des raisons de vitesses de traitement la composante deacuteriveacutee est laisseacutee de coteacute (mais rien de difficile agrave rajouter)

Le PID ou Proportionnel Inteacutegrale Deacuteriveacute est une meacutethode de calcul dasservissement

Soit Kp Ki et Kd les coefficients proportionnels inteacutegrale et deacuteriveacuteSoit e lerreur Vitesse mesureacutee moins vitesse demandeacuteeSoit Ti le terme inteacutegral dabord initialiseacute agrave 0

Consigne a appliquer (PWM) = Kp e + (1Ki) (Ti += e) + Kd (e - e(t-1))

On pourrait dire des pages et des pages sur le PID et ce nest pas mon but ici Merci de vous reporter au lien ci-dessous

Pour plus de deacutetails sur le PID la page de lANCR httpwwwancrorgfichtechactionpidindexhtmChez les Fribottes la Simulation de Jean-Claude httpwwwwikifreefrWiKiFriindexphpSimulateur20de20PID

e Le pic

Le PIC est un petit microcontrocircleur assez bon marche et simple a programmer comme a utiliser

La aussi je vais pas rentrer dans les deacutetails vous pouvez vous reporter agrave la bdtech du site Fribotte et en particulier aux cours de Bigonoff

Le PIC est ici programmeacute en C voir la page Fribotte ici Lutilisation du langage C permet dalleacuteger consideacuterablement le deacuteveloppement dune application compliqueacutee

2 Module AVR

httpwwwenseirbfr~matzfravrphp

Tregraves peu de renseignement sur ce module sinon ces informations drsquoun eacutetudiant de lrsquoEnseirb

Depuis plusieurs anneacutees je participe agrave la coupe de robotique E=M6 dont lobjectif pour chaque eacutequipe est de fabriquer un robot autonome devant se conformer agrave un regraveglement Pour plus dinfos vous pouvez vous rendre sur le site de mon eacutequipe Microb Technology ou bien sur le site de Planegravete Sciences lorganisme beacuteneacutevole qui organise cette compeacutetition

Jai deacutecouvert en 2001 les microcontrocircleurs Atmel AVR auxquels je me suis beaucoup attacheacute dune part parce quils sont assez performants pour des microcontrocircleurs 8 bits mais aussi et surtout car le fameux compilateur libre GCC est capable de compiler du code C pour ces petites becirctes Il existe de surcroicirct plusieurs outils libres permettant de les programmer de les simuler etc

Le but de ce projet est donc de deacutevelopper des modules servant dinterface geacuteneacuterique avec le hardware du microcontrocircleur quel que soit la version (par exemple les UART inclus dans les AVR AtMega sont diffeacuterents de ceux preacutesents dans les petits AVR) et de deacutevelopper des modules utiles pour certaines utilisations usuelles et pas seulement pour la coupe E=M6 (codage de hamming asservissement chiffrement etc)

Vous pouvez contacter leacutequipe de deacuteveloppement agrave avr-devdroids-corporg Pour le moment aucune release na eacuteteacute faite mais le travail est deacutejagrave bien avanceacute Chaque soir un screenshot du CVS est reacutealiseacute Il peut ne pas compiler mais normalement ccedila devrait fonctionner Voici le lien

3 Modules drsquoasservissement analogique laquo Escap raquo

Nous avons essayeacute de reacutecupeacuterer les cartes de commande Escap pour moteurs Escap qui avaient eacuteteacute utiliseacutees en 96 et 98 avec succegraves

Nous les avons monteacutes sur une base roulante qui pesait en tout 74 kgVoici grosso-modo leurs avantages et leurs inconveacutenients (pour les notices techniques voir le rapport 96 ou 98)

a Avantages

Cette carte inclut directement un asservissement avec correcteur PI la commande de puissance les ponts en H

Elle est tregraves facile agrave utiliser Elle est speacutecialement conccedilue pour les moteurs Escap que nous avons donc

parfaitement adapteacutee

b Inconveacutenients

Les moteurs ne fonctionnent correctement que sous 24v Les cartes et les moteurs semblent assez gourment Les cartes nantis de gros radiateurs sont relativement encombrantes Les tachymegravetres monteacutes sur les moteurs ne donnent pas une indication de position

mais de vitesse (qui plus est en analogique)

Nous avons preacutefeacutereacute refaire la partie commande car celle de 1996 souffrait de quelques deacutefauts (cf rapport 1996)

La conversion numeacuterique analogique

Pour reacutealiser la conversion numeacuterique analogique nous avons choisit un pont agrave reacutesistance R-2R

Nous pouvons consideacuterer que chaque bit est relieacute agrave un geacuteneacuterateur ideacuteal de tension (qui deacutelivre 0v ou 5v) Par conseacutequent la reacutesistance eacutequivalente quelque soit lrsquoeacutetat des bits et quelques soit le nombre de bits vue entre la sortie et la masse sera eacutegal agrave R

La tension Vs en fonction de lrsquoeacutetat des bits sera

Ce type de CAN eacutetant tregraves classique nous nrsquoindiquerons pas les deacutemonstrations toutefois vous pourrez les trouver tregraves facilement sur Internet ou sur le Cd-rom drsquoannexes joint au dossier

Le montage de Thevenin eacutequivalent est donc

Nous avons jugeacute qursquoune discreacutetisation sur 8 bits eacutetait un peu superflu crsquoest pourquoi nous nous contenterons de 4 bits (ce qui repreacutesentent quand mecircme 16 niveaux de vitesse)

bull Lrsquoadaptation du niveau de tension

Nous avons agrave la sortie du CAN une tension qui srsquoeacutetend de 0 agrave 5v or la commande des cartes Escap ce fait entre -5v et +5v

On peut voir cette adaptation comme lrsquoajout drsquoun offset de -25v et une amplification de gain 2

Voici le montage reacutealisant cette conversion

M1 est un montage suiveur qui lsquorecopiersquo la tension aux bornes de P1 mais sous une impeacutedance constante et eacutegale agrave 4R En 1996 lrsquoeacutequipe avait brancheacute P1 directement sur M3 mais cela a pour inconveacutenient de faire varier agrave la fois lrsquooffset et la penteLe potentiomegravetre P1 permet drsquoajuster lrsquooffset (permet par conseacutequent de reacutegler lrsquoarrecirct complet de moteur) (La valeur theacuteorique de lrsquooffset est 5V (cf formule en M3))

M2 est aussi un montage suiveur Le potentiomegravetre P2 permet drsquoajuster la pente (qui doit avoir un coefficient directeur de 2) Comme M2 est connecteacute au CAN dont la reacutesistance interne est de R P2 doit ecirctre a peut precirct eacutegal agrave R de la sorte la branche aura une reacutesistance eacutequivalente de 2R

M3 Sommateur (Vs = - 2 (Ve + Voffset))

Qursquoelle valeur choisir pour R

Theacuteoriquement on peut choisir nrsquoimporte quelle valeur pour R mais en pratique si R est trop petite une intensiteacute importante serait consommeacutee sans raison et si R est trop grande la forte impeacutedance du montage le rendra tregraves sensible aux parasites (secteur moteurshellip)Ce montage a eacuteteacute testeacute et fonctionne correctement pour R=5k les amplificateurs opeacuterationnels utiliseacutes sont des LM324 mais drsquoautres seraient tout agrave fait envisageables (peu de contraintes de vitesse et de tensions de deacutechets)

4 Conclusion

Nous avons preacutefeacutereacute ne pas utiliser les cartes Escap car les moteurs ne renvoient pas une position sous forme drsquoimpulsion mais une vitesse Etant donneacute que nous avions envisageacute un repeacuterage par odomeacutetrie cela compliquait consideacuterablement la tache

Toutefois il faut savoir que cette solution a eacuteteacute testeacutee et fonctionne tregraves bien (bonne preacutecision bonne dynamique) ainsi dans le cas ougrave le repeacuterage ne se fait pas par odomeacutetrie mais des balises exteacuterieures sachez que cette solution est tregraves pratique agrave utiliser En effet pour imposer une vitesse il suffit au microcontrocircleur drsquoappliquer sur un port un mot binaire correspondant agrave la vitesse voulue hellip et crsquoest tout La carte Escap se charge du reste

5 Carte drsquoasservissement numeacuterique laquo artisanale raquo

La carte reacutealiseacutee baseacutee sur un microcontrocircleur PIC 16F877A srsquoest aveacutereacutee fonctionnelle mais les tests drsquoalgorithmes drsquoasservissement nrsquoont pas eacuteteacute effectueacutesEn effet lrsquoutilisation de cette solution neacutecessite un microcontrocircleur deacutedieacute agrave lrsquoasservissement capable de communiquer via un protocole agrave deacutefinir avec la laquo carte megravere raquo (centralisant les retours des autres capteurs du robot et agissant sur les diffeacuterents actionneurs en fonction de la strateacutegie)Or afin de limiter le nombre de microcontrocircleurs sur le robot et du fait que lrsquoon dispose drsquoun budget suffisant nous avons deacutecideacute drsquoessayer drsquoutiliser des composants speacuteciaux reacutealisant lrsquoasservissement

Le systegraveme se deacutecompose en

- Un microcontrocircleur pour appliquer la PWM asservir et commander- Une carte de puissance pour chaque moteur baseacutee sur un LMD18200- Une carte compteur drsquoimpulsions pour les codeurs

Afin de favoriser lrsquointeractiviteacute et les reacuteglages jrsquoai ajouteacute une carte afficheur LCD avec 6 boutons sur la carte microcontrocircleur

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 16: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

Bride monteacutee sur la plaque de fond avec un moteur

Ensuite lorsque nous sommes passeacutes agrave la solution avec renvoi drsquoangle nous avons deacutecideacute drsquousiner une piegravece certes complexe mais qui proposait une universaliteacute notamment au niveau des diffeacuterentes positions des moteurs (verticale et horizontale) aspect qui satisfait pleinement au cahier des charges Cette piegravece que par la suite nous appellerons Bloc Moteur doit permettre la mise et le maintien en position du motoreacuteducteur la mise et le maintien en position du reacuteducteur la fixation de lrsquoensemble au sein du robot notamment sur la plaque de fond

Apregraves une petite eacutetude nous sommes arriveacutes agrave une piegravece de ce type

Bloc moteur pour la solution avec renvoi dangle

Cette nouvelle piegravece agrave de nombreux avantages

bull Elle nous permet de pouvoir incorporer le renvoi drsquoangle bull De maintenir les piegraveces entre-elles et de limiter les efforts directs sur les

diffeacuterents eacuteleacutementsbull Drsquoecirctre installeacute agrave lrsquohorizontale ou agrave la verticale

Effectivement lors de la conception du bloc moteur nous avons penseacute aux anneacutees futures et nous avons donc preacutevu un montage des moteurs agrave la verticale ou agrave lrsquohorizontale

En position verticale

En position horizontale

4 Les roues

Comme vu lors de la veille technologique les chenilles ont quasiment disparu de la compeacutetition Ceci est ducirc au fait que cette technologie est difficile agrave mettre en œuvre et que les regraveglements proposent des aires de jeux totalement planes

Or cette anneacutee un fosseacute fait son apparition dans le regraveglement Ce fosseacute de 36 mm de profondeur vient seacuteparer deux aires de jeu Une neacutecessiteacute de traverser le fosseacute apparaicirct donc pour aller renverser les quilles de lrsquoadversaire

Deux solutions sont alors possibles bull Traverser sur le pont aleacuteatoirebull Traverser le fosseacute

Si nous choisissons de traverser par le pont lrsquoideacutee de garder notre systegraveme de roues est correcte par contre un systegraveme agrave chenille permettrait de passer par le fosseacute

Apregraves reacuteflexion de lrsquoeacutequipe PR et des membres de la Coupe E=M6 la solution de traverser par le pont est retenue Ce qui nous a conduit tout droit vers la solution agrave roues

Les roues utiliseacutees sont des roues de roller de diamegravetre 80mm et drsquoune largeur de 22mm Ces roues sont relieacutees agrave lrsquoarbre drsquoun renvoi drsquoangle par lrsquointermeacutediaire drsquoun accouplement en aluminium

5 La base

Pour la base du robot il nous a parut indispensable de dimensionner la plaque de fond en eacutepaisseur De plus afin de maintenir la solution de modulariteacute de lrsquoensemble moteurs ndash roues nous avons deacutecideacute de fixer les deux supports moteurs sur un platine qui sera elle-mecircme fixeacutee agrave la plaque de fond du robot

Premiegraverement nous avons effectueacute un dimensionnement succinct de la platine

a Reacuteaction drsquoappui

0=sum Fx OK

0=sum Fy qLRbRaorRbRaqL210 =+=++minus

qLRa21=

AB = 027 m = L

P = mg P = 15 x 10 = 150 N

Q = 150 N270 mm soit q = 555 Nm

Bille folle

Accouplement

Bloc moteur

Renvoi drsquoangle

Platine

Base du robot

Motoreacuteducteur

Roue

b Moment de flexion

0 =sum= cMMf

02

sup2 =minus+ RaxqxMf

sup221

21 qxqLxMf minus=

c Flegraveche

)( xMfEIY =

sup221

21 qxqLxEIY minus=

161sup2

41 3 CqxqLxEIY +minus=

21241

121 43 CxCqxqLxEIY ++minus=

d Conditions aux limites

Y (x=0) = 0 C2 = 0

Y (x=L) = 0 012412

44

=+minus LCqLqL

241

4qLLC =

241

3qLC =

On obtient donc

xqLqxqLxEIY 343

241

241

121 +minus=

De mecircme

+minus=

242412

343 xLxLxEIqY

On sait que bull E = 210 000 10^6bull Y = 1 10^-3 mbull Q = 555 Nmbull L = 027 m

bull12

3bhI = b = 006 m

+

minus

=24

22416

128

343 LL

LLL

EYqI

36

4

0010102100000601052155512timestimes

timestimes=minus

h

Et enfin on trouve h lrsquoeacutepaisseur de la platine h= 43 mm

Apregraves reacuteflexion nous nous sommes rendu compte que ce calcul nrsquoeacutetait pas rigoureux car nous avons consideacutereacute la theacuteorie des poutres or dans notre cas nous ne pouvons satisfaire cette theacuteorie (Longueur de la section = 10 x la largeur de la section)

Il nous faut donc utiliser un modegravele plus preacutecis crsquoest pourquoi nous avons deacutecideacute de faire un calcul par eacuteleacutements finis sous Ideacuteas Ainsi nous trouvons une eacutepaisseur h = 32 mm

Il nous faut donc une platine de plus de 3 mm Etant donneacute que la platine sera solidairement fixeacutee agrave la base du robot nous avons deacutecideacute de prendre une eacutepaisseur de platine de 2 mm et une eacutepaisseur de base de robot de 2 mm Nous obtenons donc une eacutepaisseur totale de 4 mm Ainsi nous devrions avoir sous une charge de 15 kg moins drsquoun millimegravetre de flexion de la base du robot

6 Reacutesultats

Assemblage en position horizontale

Vue eacuteclateacutee en position verticale

Photo de lrsquoassemblage roues ndash blocs moteurs ndash moteurs ndash platine

Partie C Lrsquoeacutelectronique20 Les batteries

Afin de pouvoir choisir les batteries approprieacutees agrave notre application nous devons dans un premier temps faire une estimation de la consommation drsquoeacutenergie totale avec les pointes de courant envisageacutees dans notre robotIl est agrave noter que nous ne connaissons pas encore en deacutetail tous les eacuteleacutements annexes qui seront implanteacutes dans le robot comme par exemple les capteurs et actionneurs diverses qui seront choisis en fonction des objectifs technologiques atteints ou non de lrsquoassociation et de la strateacutegie finaleDans le but de pouvoir utiliser agrave nouveau dans lrsquoavenir notre base roulante nous avons choisi de surestimer les besoins en eacutenergie de sorte agrave ne pas ecirctre pris au deacutepourvu

La consommation pourrait se deacutecomposer ainsi - 2 moteurs de 24V sous 21A soit 1008 Watts pendant 100 du temps- 3 actionneurs de 21 Watts chacun soit 63 Watts pendant 50 du temps- 3A pour lrsquoeacutelectronique sous 5V soit 15 Watts pendant 100 du temps (Asservissement carte de commandes capteurs)

Ce qui nous fait au total une consommation maximale ~180 WattsLa consommation permanente devrait ecirctre ~147 Watts permanents il faut donc que les batteries puissent deacutebiter un courant de ~6 A sous 24 V durant le fonctionnement du robot

Apregraves une longue recherche on a pu reacutealiser le tableau comparatif des batteries suivant

typeDensiteacute

deacutenergie (WhKg)

Densiteacute deacutenergie (WhL)

auto-deacutecharge (mois)

voltage dune cellule (V)

temps de charge rapide

plomb 35 111 5 agrave 10 2 8h agrave 15h

NiCd (Nickel Cadnium) 50 94 10 agrave 20 12 1h30min

NiMH (Nickel Metal Hydride) 80 135 20 agrave 30 13 2h agrave 4h

Lithium Ion 100 196 5 agrave 10 36 2h agrave 4h

Lithium polymer 150 200 5 agrave 10 36 2h agrave 4h

AlKaline rechargeable 80 15 2h agrave 3h

type

cycle de charge-deacutecharge avant

que capaciteacute passe de 100 agrave

80

Courant max Courant max pic effet meacutemoire estimation

(euroWh) prixcycles

plomb 200 agrave 300 02C 05C M 0895 0003

NiCd (Nickel Cadnium) 1500 1C 20C H 416 0003

NiMH (Nickel Metal Hydride) 300 agrave 500 05C 5C L 2 0004

Lithium Ion 500 agrave 1000 1C 2C L 8 0008

Lithium polymer 300 agrave 500 1C 2C agrave 5C L 32 0006

AlKaline rechargeable 50 02C 05C H 178 0036

Effet meacutemoire L (Low) M (Medium) H (High)Courant max C signifie capaciteacute par exemple une batterie qui peut deacutelivrer un courant max de 1C de 4Ah pourra donc deacutelivrer 4A au maximum sans risque de deacuteteacuterioration

Nous nous sommes inteacuteresseacutes au courant maximum et au temps de charge rapide pour notre choix de batteriesLe type de batterie qui semble le plus approprieacute pour nous est le type Nickel-Cadnium parfaitement adapteacute au pic drsquoappel de courant que provoquent des moteurs pouvant supporter des charges rapides en 1h30min seulement afin de devoir preacutevoir trop de jeux de batteries diffeacuterents

Les batteries LI-Ion ou LI-Polymer preacutesentent une densiteacute eacutenergeacutetique tregraves inteacuteressante mais leur prix est beaucoup plus eacuteleveacute agrave lrsquoachat et de plus dans notre application roulant sur un sol peu accidenteacute la masse pouvant ecirctre transporteacutee est suffisante pour le type NiCd

Les batteries LI-Ion ou LI-Polymer sont plus adapteacutees agrave lrsquoaeacuteromodeacutelisme ou au petit appareil eacutelectroniqueQuant aux batteries au plomb qui sont vraiment bon marcheacute le courant maximum supporteacute est trop faible est supposerait drsquoavoir une forte capaciteacute

Nous voulons avoir une autonomie de 30 minutes il nous faut donc une eacutenergie de 735 WhOr sous 24 V les batteries doivent avoir une capaciteacute de ~3 AhComme les batteries NiCd peuvent deacutebiter un courant maximum de 1C (une fois leur capaciteacute) nous devons donc prendre des batteries de 6Ah sous 24 V ce qui nous donnera une autonomie de 1 heure

Il faudra donc soit acheter un bloc accumulateur NiCd de 24 V 6 Ah srsquoil existe dans le commerce soit le reacutealiser nous mecircme en assemblant diffeacuterents eacuteleacutements

Rappelons que lrsquoassociation en seacuterie permet drsquoadditionner les tensions des eacuteleacutements associeacutes et que lrsquoassociation en parallegravele permet drsquoadditionner les courants deacutebiteacutes

Par exemple des eacuteleacutements de 12 V chacun pour 3 Ah srsquoassocieraient ainsi

Soit deux seacuteries de 20 eacuteleacutements eacutequivalentes agrave 24 V et faisant une capaciteacute de 3 Ah chacune

Il est possible de reacutepartir les accumulateurs en diffeacuterents paquets pour faciliter le rangement dans le robot ou reacutepartir la masse ou eacuteventuellement trouver des packs dans le commerce

Dans le cas de lrsquoUV PR le choix des batteries reste pour le moment sur les NiCd mais pour les essais pratiques on utilisera des batteries au plomb que lrsquoon possegravede deacutejagrave drsquoautant plus que les essais sont reacutealiseacutes avec les moteurs de propulsion et lrsquoasservissement seul ce qui

neacutecessite un deacutebit de courant de 24105 = 4375 A sur 2 batteries soit asymp2187 A

Comme les batteries au plomb peuvent deacutebiter 02C il nous en faudrait des de asymp 109 Ah

Or les essais de la base roulante ne seront que de courtes dureacutees et lrsquoon se contentera donc drsquoutiliser des batteries de 6 Ah pour des raisons de volume mecircme si elles ne sont pas vraiment bien dimensionneacutees

21 La commande des moteurs

Dans un premier temps nous verrons un bref reacutecapitulatif des cartes et modules drsquoasservissement du commerce

Pour la commande les moteurs plusieurs solutions ont eacuteteacute envisageacutees - Un asservissement lsquotout faitrsquo analogique modules laquo Escap raquo- Une solution lsquoartisanalersquo carte avec asservissement numeacuterique- Un asservissement lsquotout faitrsquo numeacuterique circuits laquo LM629 raquo

a Comparatifs des modules drsquoasservissement et calcul des correcteurs

Veille technologique sur les systegravemes drsquoasservissement utiliseacutes par les diffeacuterentes eacutecoles de la coupe E= M6

Le but de cette partie est drsquoeacutetudier les principales techniques drsquoasservissement utiliseacutees par les eacutecoles de la Coupe E=M6 Ce document est loin drsquoecirctre exhaustif et servira de base agrave compleacuteter et actualiser pour les semestres et eacutequipes prochaines

Apregraves une eacutetude sur plus drsquoune trentaine drsquoeacutecoles il ressort trois formes drsquoasservissement la plus utiliseacutee agrave 85 est du type PID en majoriteacute reacuteduit au PI ensuite viennent les microcontrocircleurs PIC associeacutes au PID et les modules AVR nous allons par la suite deacutetailler ces trois solutions Il existe eacutegalement des systegravemes de controcircle dits agrave retour drsquoeacutetat jamais utiliseacutes jusqursquoagrave preacutesent pour la Coupe crsquoest pourquoi nous ne deacutevelopperons pas son approche

3 Systegraveme PID

httpwwwancrorgfichtechactionpidindexhtm

a Principe

Pour pouvoir tester un asservissement il faut dabord reacutealiser une plate-forme de deacuteveloppement le plus geacuteneacuteralement du type suivant Mais pour commencer un brin de theacuteorie illustreacute par des exemples Le scheacutema de principe est repreacutesenteacute ci-dessous

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

Nous avons bien un scheacutema en boucle fermeacutee puisque la sortie du systegraveme est reacuteinjecteacutee dans lentreacutee Les trois blocs bleus correspondent chacun agrave une fonctionnaliteacute Ki est le coefficient inteacutegral Kp le coefficient proportionnel et Kd le coefficient deacuteriveacute Chacun de ces coefficients a une fonctionnaliteacute bien preacutecise Commenccedilons par le plus simple le proportionnel

b Asservissement P

Lasservissement proportionnel est essentiel au fonctionnement du PID Il permet essentiellement de donner de la puissance au moteur Voici quelques reacutesultats dexpeacuterimentations avec Ki=0 et Kd=0

La courbe noire repreacutesente la consigne que lon deacutesire atteindre (Ud) cest un eacutechelon de valeur 32 La courbe bleue repreacutesente la vitesse reacuteelle du systegraveme (Y) Comme vous pouvez le constater plus Kp est grand plus le systegraveme converge vite vers sa valeur finale Mais en contrepartie pour des valeurs de Kp trop grandes le systegraveme oscille Mais lagrave nest pas notre plus gros problegraveme en effet sur ces courbes on voit nettement que la vitesse du moteur natteint jamais la vitesse deacutesireacutee Cest ce que lon appelle lerreur statique elle correspond agrave la diffeacuterence entre la vitesse reacuteelle et la vitesse deacutesireacutee en reacutegime eacutetablie (une fois que le systegraveme sest stabiliseacute) Pour compenser cette erreur statique on rajoute le terme inteacutegral

c Asservissement PI

Le correcteur inteacutegral sert principalement agrave supprimer lerreur statique Lideacutee principale est de charger ou inteacutegrer lerreur depuis le deacutebut et dajouter cette erreur agrave la consigne jusquagrave ce quelle devienne nulle Lorsque cette erreur est nulle le terme inteacutegral se stabilise et il compense parfaitement lerreur entre la consigne et la vitesse reacuteelle Deacutemonstration en image

On voit cette fois-ci que le terme inteacutegral a bien fonctionneacute et que lerreur statique est nulle On constate aussi que plus le gain Ki est grand plus le systegraveme converge vite En revanche plus Ki est grand plus le systegraveme oscille et plus le deacutepassement est grand Sur des asservissements en position le terme deacuteriveacute permet de diminuer le deacutepassement et les oscillations Nous allons voir que dans notre cas nous avons quelques problegravemes

d Asservissement PID ou agrave avance de phase

On a donc rajouteacute le terme deacuteriveacute comme tout bon livre dautomatique le preacuteconise et voici les reacutesultats

Cette fois ci jai choisi de repreacutesenter la tension appliqueacutee au moteur (U) le problegraveme est bien plus flagrant ici Vous voyez que lorsque lon ajoute le terme deacuteriveacute la commande est extrecircmement bruiteacutee En reacutealiteacute on somme agrave la commande la deacuteriveacutee de la vitesse reacuteelle que lon multiplie par un gain Kd La deacuteriveacutee dune vitesse est une acceacuteleacuteration cela signifie que lon amplifie tous les bruits dacceacuteleacuteration et en plus on les multiplient par un gain Kd Donc rajoute du bruit amplifieacute dans la commande Alors pourquoi mettent t-ils ce terme deacuteriveacutee dans les livres Simplement parce que ce bruit est typique des asservissement en vitesse Sur des asservissements en position ce problegraveme est moins freacutequent car la deacuteriveacutee de la position est la vitesse

Ici le problegraveme eacutetait visible parce que nous avons reacutealiseacute toutes ces courbes sur un systegraveme reacuteel Si nous avions simuleacute ces reacutesultats lacceacuteleacuteration naurait pas eacuteteacute bruiteacutee et les courbes auraient eacuteteacute parfaites Pour impleacutementer ce PID sur notre robot il a fallu programmer en numeacuterique une deacuteriveacutee et une inteacutegrale

e PID numeacuterique et reacuteglage

Notre premier problegraveme est de programmer le terme inteacutegral Il existe une meacutethode qui consiste agrave estimer la surface entre deux eacutechantillons mais dans notre cas nous avons des problegravemes dus aux bruits et agrave la freacutequence deacutechantillonnage Alors il faut sommer toutes les erreurs depuis de deacutebut

Notre second problegraveme est de programmer le terme deacuteriveacute La meacutethode ici est de calculer la pente entre deux eacutechantillons de e Theacuteoriquement cela revient agrave faire le calcul suivant

Avec la peacuteriode deacutechantillonnage Pour faire un asservissement numeacuterique il faut impeacuterativement avoir une peacuteriode fixe Pour gagner du temps de calcul geacuteneacuteralement on inteacutegre directement dans le gain Kd

Voici un lalgorithme exemple

Ti = 0 Initialise le terme inteacutegral

for ( i=1 i lt= Nb_cycles i++ )

Init_timers (1) Initialise le timer agrave notre peacuteriode 1 ms

Y = Codeur () Stoque la valeur du codeur dans Y Rst_codeur () Remet le codeur agrave zeacutero Ud = Consigne () Mise agrave jour de la consigne e_old=e Stoque e(t-1) e = Ud - Y Calcul de lerreur Ti = Ti + e Calcul de linteacutegral Calcul du PID U = Kp e Terme proportionnel

+ Ki Ti Terme inteacutegral + Kd ( e - e_old ) Terme deacuteriveacute Moteur (U) On applique la consigne

while ( end_timer() ) On attend la fin de la peacuteriode

Pour le reacuteglage des gains Kp Ki et Kd il existe diffeacuterentes meacutethodes Ici nous lavons fait de maniegravere empirique et le reacutesultats est plutocirct bon Linconveacutenient de ces meacutethodes est quelles demandent un modegravele du systegraveme ce qui est geacuteneacuteralement dur agrave produire Il existe

aussi des composants programmables qui permettent de faire directement lasservissement numeacuterique (HCTL 1100 LM629) Ils sont exactement baseacutes sur la meacutethode preacutesenteacutee ici

Pour ce qui est du reacuteglage des correcteurs lrsquooptimal est drsquoutiliser la meacutethode de lrsquooptimum dissymeacutetrique une fois que lrsquoon agrave reacutealiseacute le modegravele du systegraveme La plus part des eacutecoles ne reacutealisent pas ce modegravele et ce limite donc agrave une correction empirique en reacutealisant des tests ou en utilisant la meacutethode Ziegler-Nichols agrave partir de la reacuteponse agrave un eacutechelon de tension

Par la suite nous rappellerons les meacutethodes de Ziegler-Nichols et de lrsquooptimum dissymeacutetrique

f Les meacutethodes de Ziegler-Nichols

Ces meacutethodes fournissent des reacuteglages pour des correcteurs de type PID (pouvant ne comporter quune action Proportionnelle une action Proportionnelle et une action Inteacutegrale ou les 3 actions simultaneacutement) dont la structure est la suivante

bull MEacuteTHODE DE ZIEGLER NICHOLS TEMPORELLE

Elle est adapteacutee aux systegravemes stables en boucle ouverte qui ont une reacuteponse apeacuteriodique La reacuteponse agrave un eacutechelon unitaire du systegraveme physique doit ecirctre enregistreacutee Diffeacuterentes caracteacuteristiques de la reacuteponse obtenue sont mesureacutees

Le modegravele approcheacute utiliseacutee par Ziegler Nichols comporte une constante de temps et un retard pur ou bien un retard pur et un inteacutegrateur

Si le systegraveme physique comporte un inteacutegrateur les mesures de a et de L demeurent disponibles sur le deacutebut de la reacuteponse

Les reacuteglages suggeacutereacutes par la meacutethode temporelle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 1a - -correcteur PI 09a 3L -

correcteur PID 12a 2L L2Concernant le raffinement des reacuteglages augmenter Kp ou diminuer Ti augment les

oscillations de la sortie

bull MEacuteTHODE DE ZIEGLER NICHOLS FREacuteQUENTIELLE

Cette meacutethode convient particuliegraverement bien aux systegravemes instables en boucle ouverte pour lesquels la meacutethode temporelle nest pas envisageable Lexpeacuterimentation se fait sur le systegraveme boucleacute avec un simple gain proportionnel qui doit ecirctre stable Le principe est de modifier la valeur du gain par essai-erreur jusquagrave atteindre la limite de stabiliteacute (pheacutenomegravene de pompage) Il reste agrave relever le gain limite K0 obtenu et agrave mesurer la peacuteriode T0 des oscillations de la reacuteponse obtenue

Les reacuteglages suggeacutereacutes par la meacutethode freacutequentielle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 05 K0 - -correcteur PI 045 K0 08 T0 -

correcteur PID 06 K0 05 T0 0125 T0

A la page Internet suivante vous trouverez un simulateur de cette meacutethode

httpwww-hadocensieginpgfrhadocateliersreglageEmpCorrReglEmpCorrDroithtml

g Meacutethode de lrsquooptimum dyssimeacutetique (voir poly MC06 Chap 5 et 8)

Cette meacutethode srsquoapplique une fois le modegravele reacutealiseacute et mis sous la forme drsquoun second ordre

et on obtient le correcteur PI

pour une surtension deacutesireacutee QdB

Q = 10^(QdB20)λ= radic(Qsup2(Qsup2-1))Δφ = arcos (1 λ)α= ((1+sin(Δφ))cos(Δφ))sup2ωN= ωQαω0= ωQradicαKP= ω0 λ KQ

4 Les microcontrocircleurs

a Avant propos

Cette fiche se veut ecirctre sous la forme dun projet Un projet non termineacute ougrave chacun peut apporter sa contribution (ameacuteliorations adaptations corrections etc)De ce fait ces pages sont ameneacutees agrave eacutevoluer et vous-mecircme pourrez participer agrave leur eacutevolution

Pourquoi avoir choisit un tel mode de travail Tout simplement parce que le sujet est vaste et que des variations sont possibles suivant lutilisation quen feront les diffeacuterentes personnes

Le but de ce projet est de reacutealiser une double asservissement de vitesse (type PID) de deux moteurs sur un seul PIC (type 16F877) Lutiliteacute majeure eacutetant de faire rouler un robot bien droit et agrave la bonne vitesse A quoi ccedila sert plus preacuteciseacutement

Avec un seul PIC ce projet permet aux roboticiens amateurs et chevronneacutes de reacutealiser facilement leur asservissement de vitesse de moteurs agrave courant continu (en geacuteneacuteral les moteurs de propulsions de leur robot mais ccedila peut ecirctre bien sucircr dautres moteurs) La commande de lasservissement pourra se faire agrave terme en liaison seacuterie (deacutejagrave fait) I2C ou par bus ISA

b Avantages

Il existe bien sucircr dautres systegravemes qui gegraverent un asservissement de vitesses Des systegravemes professionnels existent comme les LM629 Ils ont linconveacutenient decirctre cher (et ce pour un seul moteur) et relativement complexes

Pourquoi chercher un fusil pour chasser des moustiques Le double asservissement sur PIC vous coucircte le prix dun PIC soit environ 15Euro pour un 16F877 actuellement et ce pour 2 moteurs Ce double asservissement se veut relativement simple De plus vous pouvez en modifier le programme et ladapter agrave vos besoins

c Inconveacutenients

Les personnes qui auront les moyens preacutefeacutererons opter pour un systegraveme professionnel certainement pour des raisons de fiabiliteacute mais cest agrave leurs risques et peacuterils -)La puissance du PIC eacutetant limiteacutee il ne peut pas reacutealiser des PID trop rapides ou trop complexes Il y a en particulier une limitation sur le nombre dimpulsions par seconde quil est capable de geacuterer

Le langage utiliseacute eacutetant le C il faut une licence du logiciel pour pouvoir modifier et recompiler le code source c Mais le projet se veut geacuteneacuterique Une version donneacutee pourra ecirctre utiliseacute sans recompilation en respectant quelques contraintes

d Asservissement

En fait on pourrait imaginer quil suffirait denvoyer au moteur une puissance constante pour quil tourne tout le temps agrave la mecircme vitesse Ce nest pas vrai du tout Tout dabord 2 moteurs dune mecircme seacuterie nauront pas forceacutement le mecircme comportement Ensuite parce que les niveaux de tension ou dautre diffeacuterences eacutelectriques peuvent jouer Enfin parce que des influences exteacuterieures (obstacles frein meacutecanique du robot) peuvent jouer

Du coup il est tregraves difficile de faire aller un moteur agrave la vitesse voulue Parfois ce nest pas gecircnant mais ccedila peut lecirctre Un exemple classique est le robot avec 2 roues motrices type char une configuration qui est tregraves courante Mais pour que ce robot aille droit il faut que les 2 moteurs aillent exactement agrave la mecircme vitesse

La solution est de faire un asservissement Cest a dire moduler dynamiquement la puissance envoyeacute aux moteurs suivant leur vitesse mesureacutee afin dadapter celle-ci agrave ce qui est deacutesireacuteeCela implique un eacuteleacutement tregraves important pour asservir il faut un capteur de vitesse du moteur En geacuteneacuteral il sagit dun compte-tour qui enverra N impulsions (ou pas) par tour de moteur Ensuite un programme va calculer en fonction de la vitesse mesureacutee du moteur la puissance agrave utiliser

Les asservissements sont constamment en train de chercher leacutequilibre Il faut bien comprendre quils mettent un certain temps agrave latteindre et ce dernier peut aussi ecirctre instable si lasservissement est mal reacutegleacute

Lasservissement quon va utiliser ici est un classique PIDou plus preacuteciseacutement un PI car pour des raisons de vitesses de traitement la composante deacuteriveacutee est laisseacutee de coteacute (mais rien de difficile agrave rajouter)

Le PID ou Proportionnel Inteacutegrale Deacuteriveacute est une meacutethode de calcul dasservissement

Soit Kp Ki et Kd les coefficients proportionnels inteacutegrale et deacuteriveacuteSoit e lerreur Vitesse mesureacutee moins vitesse demandeacuteeSoit Ti le terme inteacutegral dabord initialiseacute agrave 0

Consigne a appliquer (PWM) = Kp e + (1Ki) (Ti += e) + Kd (e - e(t-1))

On pourrait dire des pages et des pages sur le PID et ce nest pas mon but ici Merci de vous reporter au lien ci-dessous

Pour plus de deacutetails sur le PID la page de lANCR httpwwwancrorgfichtechactionpidindexhtmChez les Fribottes la Simulation de Jean-Claude httpwwwwikifreefrWiKiFriindexphpSimulateur20de20PID

e Le pic

Le PIC est un petit microcontrocircleur assez bon marche et simple a programmer comme a utiliser

La aussi je vais pas rentrer dans les deacutetails vous pouvez vous reporter agrave la bdtech du site Fribotte et en particulier aux cours de Bigonoff

Le PIC est ici programmeacute en C voir la page Fribotte ici Lutilisation du langage C permet dalleacuteger consideacuterablement le deacuteveloppement dune application compliqueacutee

2 Module AVR

httpwwwenseirbfr~matzfravrphp

Tregraves peu de renseignement sur ce module sinon ces informations drsquoun eacutetudiant de lrsquoEnseirb

Depuis plusieurs anneacutees je participe agrave la coupe de robotique E=M6 dont lobjectif pour chaque eacutequipe est de fabriquer un robot autonome devant se conformer agrave un regraveglement Pour plus dinfos vous pouvez vous rendre sur le site de mon eacutequipe Microb Technology ou bien sur le site de Planegravete Sciences lorganisme beacuteneacutevole qui organise cette compeacutetition

Jai deacutecouvert en 2001 les microcontrocircleurs Atmel AVR auxquels je me suis beaucoup attacheacute dune part parce quils sont assez performants pour des microcontrocircleurs 8 bits mais aussi et surtout car le fameux compilateur libre GCC est capable de compiler du code C pour ces petites becirctes Il existe de surcroicirct plusieurs outils libres permettant de les programmer de les simuler etc

Le but de ce projet est donc de deacutevelopper des modules servant dinterface geacuteneacuterique avec le hardware du microcontrocircleur quel que soit la version (par exemple les UART inclus dans les AVR AtMega sont diffeacuterents de ceux preacutesents dans les petits AVR) et de deacutevelopper des modules utiles pour certaines utilisations usuelles et pas seulement pour la coupe E=M6 (codage de hamming asservissement chiffrement etc)

Vous pouvez contacter leacutequipe de deacuteveloppement agrave avr-devdroids-corporg Pour le moment aucune release na eacuteteacute faite mais le travail est deacutejagrave bien avanceacute Chaque soir un screenshot du CVS est reacutealiseacute Il peut ne pas compiler mais normalement ccedila devrait fonctionner Voici le lien

3 Modules drsquoasservissement analogique laquo Escap raquo

Nous avons essayeacute de reacutecupeacuterer les cartes de commande Escap pour moteurs Escap qui avaient eacuteteacute utiliseacutees en 96 et 98 avec succegraves

Nous les avons monteacutes sur une base roulante qui pesait en tout 74 kgVoici grosso-modo leurs avantages et leurs inconveacutenients (pour les notices techniques voir le rapport 96 ou 98)

a Avantages

Cette carte inclut directement un asservissement avec correcteur PI la commande de puissance les ponts en H

Elle est tregraves facile agrave utiliser Elle est speacutecialement conccedilue pour les moteurs Escap que nous avons donc

parfaitement adapteacutee

b Inconveacutenients

Les moteurs ne fonctionnent correctement que sous 24v Les cartes et les moteurs semblent assez gourment Les cartes nantis de gros radiateurs sont relativement encombrantes Les tachymegravetres monteacutes sur les moteurs ne donnent pas une indication de position

mais de vitesse (qui plus est en analogique)

Nous avons preacutefeacutereacute refaire la partie commande car celle de 1996 souffrait de quelques deacutefauts (cf rapport 1996)

La conversion numeacuterique analogique

Pour reacutealiser la conversion numeacuterique analogique nous avons choisit un pont agrave reacutesistance R-2R

Nous pouvons consideacuterer que chaque bit est relieacute agrave un geacuteneacuterateur ideacuteal de tension (qui deacutelivre 0v ou 5v) Par conseacutequent la reacutesistance eacutequivalente quelque soit lrsquoeacutetat des bits et quelques soit le nombre de bits vue entre la sortie et la masse sera eacutegal agrave R

La tension Vs en fonction de lrsquoeacutetat des bits sera

Ce type de CAN eacutetant tregraves classique nous nrsquoindiquerons pas les deacutemonstrations toutefois vous pourrez les trouver tregraves facilement sur Internet ou sur le Cd-rom drsquoannexes joint au dossier

Le montage de Thevenin eacutequivalent est donc

Nous avons jugeacute qursquoune discreacutetisation sur 8 bits eacutetait un peu superflu crsquoest pourquoi nous nous contenterons de 4 bits (ce qui repreacutesentent quand mecircme 16 niveaux de vitesse)

bull Lrsquoadaptation du niveau de tension

Nous avons agrave la sortie du CAN une tension qui srsquoeacutetend de 0 agrave 5v or la commande des cartes Escap ce fait entre -5v et +5v

On peut voir cette adaptation comme lrsquoajout drsquoun offset de -25v et une amplification de gain 2

Voici le montage reacutealisant cette conversion

M1 est un montage suiveur qui lsquorecopiersquo la tension aux bornes de P1 mais sous une impeacutedance constante et eacutegale agrave 4R En 1996 lrsquoeacutequipe avait brancheacute P1 directement sur M3 mais cela a pour inconveacutenient de faire varier agrave la fois lrsquooffset et la penteLe potentiomegravetre P1 permet drsquoajuster lrsquooffset (permet par conseacutequent de reacutegler lrsquoarrecirct complet de moteur) (La valeur theacuteorique de lrsquooffset est 5V (cf formule en M3))

M2 est aussi un montage suiveur Le potentiomegravetre P2 permet drsquoajuster la pente (qui doit avoir un coefficient directeur de 2) Comme M2 est connecteacute au CAN dont la reacutesistance interne est de R P2 doit ecirctre a peut precirct eacutegal agrave R de la sorte la branche aura une reacutesistance eacutequivalente de 2R

M3 Sommateur (Vs = - 2 (Ve + Voffset))

Qursquoelle valeur choisir pour R

Theacuteoriquement on peut choisir nrsquoimporte quelle valeur pour R mais en pratique si R est trop petite une intensiteacute importante serait consommeacutee sans raison et si R est trop grande la forte impeacutedance du montage le rendra tregraves sensible aux parasites (secteur moteurshellip)Ce montage a eacuteteacute testeacute et fonctionne correctement pour R=5k les amplificateurs opeacuterationnels utiliseacutes sont des LM324 mais drsquoautres seraient tout agrave fait envisageables (peu de contraintes de vitesse et de tensions de deacutechets)

4 Conclusion

Nous avons preacutefeacutereacute ne pas utiliser les cartes Escap car les moteurs ne renvoient pas une position sous forme drsquoimpulsion mais une vitesse Etant donneacute que nous avions envisageacute un repeacuterage par odomeacutetrie cela compliquait consideacuterablement la tache

Toutefois il faut savoir que cette solution a eacuteteacute testeacutee et fonctionne tregraves bien (bonne preacutecision bonne dynamique) ainsi dans le cas ougrave le repeacuterage ne se fait pas par odomeacutetrie mais des balises exteacuterieures sachez que cette solution est tregraves pratique agrave utiliser En effet pour imposer une vitesse il suffit au microcontrocircleur drsquoappliquer sur un port un mot binaire correspondant agrave la vitesse voulue hellip et crsquoest tout La carte Escap se charge du reste

5 Carte drsquoasservissement numeacuterique laquo artisanale raquo

La carte reacutealiseacutee baseacutee sur un microcontrocircleur PIC 16F877A srsquoest aveacutereacutee fonctionnelle mais les tests drsquoalgorithmes drsquoasservissement nrsquoont pas eacuteteacute effectueacutesEn effet lrsquoutilisation de cette solution neacutecessite un microcontrocircleur deacutedieacute agrave lrsquoasservissement capable de communiquer via un protocole agrave deacutefinir avec la laquo carte megravere raquo (centralisant les retours des autres capteurs du robot et agissant sur les diffeacuterents actionneurs en fonction de la strateacutegie)Or afin de limiter le nombre de microcontrocircleurs sur le robot et du fait que lrsquoon dispose drsquoun budget suffisant nous avons deacutecideacute drsquoessayer drsquoutiliser des composants speacuteciaux reacutealisant lrsquoasservissement

Le systegraveme se deacutecompose en

- Un microcontrocircleur pour appliquer la PWM asservir et commander- Une carte de puissance pour chaque moteur baseacutee sur un LMD18200- Une carte compteur drsquoimpulsions pour les codeurs

Afin de favoriser lrsquointeractiviteacute et les reacuteglages jrsquoai ajouteacute une carte afficheur LCD avec 6 boutons sur la carte microcontrocircleur

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 17: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

Bloc moteur pour la solution avec renvoi dangle

Cette nouvelle piegravece agrave de nombreux avantages

bull Elle nous permet de pouvoir incorporer le renvoi drsquoangle bull De maintenir les piegraveces entre-elles et de limiter les efforts directs sur les

diffeacuterents eacuteleacutementsbull Drsquoecirctre installeacute agrave lrsquohorizontale ou agrave la verticale

Effectivement lors de la conception du bloc moteur nous avons penseacute aux anneacutees futures et nous avons donc preacutevu un montage des moteurs agrave la verticale ou agrave lrsquohorizontale

En position verticale

En position horizontale

4 Les roues

Comme vu lors de la veille technologique les chenilles ont quasiment disparu de la compeacutetition Ceci est ducirc au fait que cette technologie est difficile agrave mettre en œuvre et que les regraveglements proposent des aires de jeux totalement planes

Or cette anneacutee un fosseacute fait son apparition dans le regraveglement Ce fosseacute de 36 mm de profondeur vient seacuteparer deux aires de jeu Une neacutecessiteacute de traverser le fosseacute apparaicirct donc pour aller renverser les quilles de lrsquoadversaire

Deux solutions sont alors possibles bull Traverser sur le pont aleacuteatoirebull Traverser le fosseacute

Si nous choisissons de traverser par le pont lrsquoideacutee de garder notre systegraveme de roues est correcte par contre un systegraveme agrave chenille permettrait de passer par le fosseacute

Apregraves reacuteflexion de lrsquoeacutequipe PR et des membres de la Coupe E=M6 la solution de traverser par le pont est retenue Ce qui nous a conduit tout droit vers la solution agrave roues

Les roues utiliseacutees sont des roues de roller de diamegravetre 80mm et drsquoune largeur de 22mm Ces roues sont relieacutees agrave lrsquoarbre drsquoun renvoi drsquoangle par lrsquointermeacutediaire drsquoun accouplement en aluminium

5 La base

Pour la base du robot il nous a parut indispensable de dimensionner la plaque de fond en eacutepaisseur De plus afin de maintenir la solution de modulariteacute de lrsquoensemble moteurs ndash roues nous avons deacutecideacute de fixer les deux supports moteurs sur un platine qui sera elle-mecircme fixeacutee agrave la plaque de fond du robot

Premiegraverement nous avons effectueacute un dimensionnement succinct de la platine

a Reacuteaction drsquoappui

0=sum Fx OK

0=sum Fy qLRbRaorRbRaqL210 =+=++minus

qLRa21=

AB = 027 m = L

P = mg P = 15 x 10 = 150 N

Q = 150 N270 mm soit q = 555 Nm

Bille folle

Accouplement

Bloc moteur

Renvoi drsquoangle

Platine

Base du robot

Motoreacuteducteur

Roue

b Moment de flexion

0 =sum= cMMf

02

sup2 =minus+ RaxqxMf

sup221

21 qxqLxMf minus=

c Flegraveche

)( xMfEIY =

sup221

21 qxqLxEIY minus=

161sup2

41 3 CqxqLxEIY +minus=

21241

121 43 CxCqxqLxEIY ++minus=

d Conditions aux limites

Y (x=0) = 0 C2 = 0

Y (x=L) = 0 012412

44

=+minus LCqLqL

241

4qLLC =

241

3qLC =

On obtient donc

xqLqxqLxEIY 343

241

241

121 +minus=

De mecircme

+minus=

242412

343 xLxLxEIqY

On sait que bull E = 210 000 10^6bull Y = 1 10^-3 mbull Q = 555 Nmbull L = 027 m

bull12

3bhI = b = 006 m

+

minus

=24

22416

128

343 LL

LLL

EYqI

36

4

0010102100000601052155512timestimes

timestimes=minus

h

Et enfin on trouve h lrsquoeacutepaisseur de la platine h= 43 mm

Apregraves reacuteflexion nous nous sommes rendu compte que ce calcul nrsquoeacutetait pas rigoureux car nous avons consideacutereacute la theacuteorie des poutres or dans notre cas nous ne pouvons satisfaire cette theacuteorie (Longueur de la section = 10 x la largeur de la section)

Il nous faut donc utiliser un modegravele plus preacutecis crsquoest pourquoi nous avons deacutecideacute de faire un calcul par eacuteleacutements finis sous Ideacuteas Ainsi nous trouvons une eacutepaisseur h = 32 mm

Il nous faut donc une platine de plus de 3 mm Etant donneacute que la platine sera solidairement fixeacutee agrave la base du robot nous avons deacutecideacute de prendre une eacutepaisseur de platine de 2 mm et une eacutepaisseur de base de robot de 2 mm Nous obtenons donc une eacutepaisseur totale de 4 mm Ainsi nous devrions avoir sous une charge de 15 kg moins drsquoun millimegravetre de flexion de la base du robot

6 Reacutesultats

Assemblage en position horizontale

Vue eacuteclateacutee en position verticale

Photo de lrsquoassemblage roues ndash blocs moteurs ndash moteurs ndash platine

Partie C Lrsquoeacutelectronique20 Les batteries

Afin de pouvoir choisir les batteries approprieacutees agrave notre application nous devons dans un premier temps faire une estimation de la consommation drsquoeacutenergie totale avec les pointes de courant envisageacutees dans notre robotIl est agrave noter que nous ne connaissons pas encore en deacutetail tous les eacuteleacutements annexes qui seront implanteacutes dans le robot comme par exemple les capteurs et actionneurs diverses qui seront choisis en fonction des objectifs technologiques atteints ou non de lrsquoassociation et de la strateacutegie finaleDans le but de pouvoir utiliser agrave nouveau dans lrsquoavenir notre base roulante nous avons choisi de surestimer les besoins en eacutenergie de sorte agrave ne pas ecirctre pris au deacutepourvu

La consommation pourrait se deacutecomposer ainsi - 2 moteurs de 24V sous 21A soit 1008 Watts pendant 100 du temps- 3 actionneurs de 21 Watts chacun soit 63 Watts pendant 50 du temps- 3A pour lrsquoeacutelectronique sous 5V soit 15 Watts pendant 100 du temps (Asservissement carte de commandes capteurs)

Ce qui nous fait au total une consommation maximale ~180 WattsLa consommation permanente devrait ecirctre ~147 Watts permanents il faut donc que les batteries puissent deacutebiter un courant de ~6 A sous 24 V durant le fonctionnement du robot

Apregraves une longue recherche on a pu reacutealiser le tableau comparatif des batteries suivant

typeDensiteacute

deacutenergie (WhKg)

Densiteacute deacutenergie (WhL)

auto-deacutecharge (mois)

voltage dune cellule (V)

temps de charge rapide

plomb 35 111 5 agrave 10 2 8h agrave 15h

NiCd (Nickel Cadnium) 50 94 10 agrave 20 12 1h30min

NiMH (Nickel Metal Hydride) 80 135 20 agrave 30 13 2h agrave 4h

Lithium Ion 100 196 5 agrave 10 36 2h agrave 4h

Lithium polymer 150 200 5 agrave 10 36 2h agrave 4h

AlKaline rechargeable 80 15 2h agrave 3h

type

cycle de charge-deacutecharge avant

que capaciteacute passe de 100 agrave

80

Courant max Courant max pic effet meacutemoire estimation

(euroWh) prixcycles

plomb 200 agrave 300 02C 05C M 0895 0003

NiCd (Nickel Cadnium) 1500 1C 20C H 416 0003

NiMH (Nickel Metal Hydride) 300 agrave 500 05C 5C L 2 0004

Lithium Ion 500 agrave 1000 1C 2C L 8 0008

Lithium polymer 300 agrave 500 1C 2C agrave 5C L 32 0006

AlKaline rechargeable 50 02C 05C H 178 0036

Effet meacutemoire L (Low) M (Medium) H (High)Courant max C signifie capaciteacute par exemple une batterie qui peut deacutelivrer un courant max de 1C de 4Ah pourra donc deacutelivrer 4A au maximum sans risque de deacuteteacuterioration

Nous nous sommes inteacuteresseacutes au courant maximum et au temps de charge rapide pour notre choix de batteriesLe type de batterie qui semble le plus approprieacute pour nous est le type Nickel-Cadnium parfaitement adapteacute au pic drsquoappel de courant que provoquent des moteurs pouvant supporter des charges rapides en 1h30min seulement afin de devoir preacutevoir trop de jeux de batteries diffeacuterents

Les batteries LI-Ion ou LI-Polymer preacutesentent une densiteacute eacutenergeacutetique tregraves inteacuteressante mais leur prix est beaucoup plus eacuteleveacute agrave lrsquoachat et de plus dans notre application roulant sur un sol peu accidenteacute la masse pouvant ecirctre transporteacutee est suffisante pour le type NiCd

Les batteries LI-Ion ou LI-Polymer sont plus adapteacutees agrave lrsquoaeacuteromodeacutelisme ou au petit appareil eacutelectroniqueQuant aux batteries au plomb qui sont vraiment bon marcheacute le courant maximum supporteacute est trop faible est supposerait drsquoavoir une forte capaciteacute

Nous voulons avoir une autonomie de 30 minutes il nous faut donc une eacutenergie de 735 WhOr sous 24 V les batteries doivent avoir une capaciteacute de ~3 AhComme les batteries NiCd peuvent deacutebiter un courant maximum de 1C (une fois leur capaciteacute) nous devons donc prendre des batteries de 6Ah sous 24 V ce qui nous donnera une autonomie de 1 heure

Il faudra donc soit acheter un bloc accumulateur NiCd de 24 V 6 Ah srsquoil existe dans le commerce soit le reacutealiser nous mecircme en assemblant diffeacuterents eacuteleacutements

Rappelons que lrsquoassociation en seacuterie permet drsquoadditionner les tensions des eacuteleacutements associeacutes et que lrsquoassociation en parallegravele permet drsquoadditionner les courants deacutebiteacutes

Par exemple des eacuteleacutements de 12 V chacun pour 3 Ah srsquoassocieraient ainsi

Soit deux seacuteries de 20 eacuteleacutements eacutequivalentes agrave 24 V et faisant une capaciteacute de 3 Ah chacune

Il est possible de reacutepartir les accumulateurs en diffeacuterents paquets pour faciliter le rangement dans le robot ou reacutepartir la masse ou eacuteventuellement trouver des packs dans le commerce

Dans le cas de lrsquoUV PR le choix des batteries reste pour le moment sur les NiCd mais pour les essais pratiques on utilisera des batteries au plomb que lrsquoon possegravede deacutejagrave drsquoautant plus que les essais sont reacutealiseacutes avec les moteurs de propulsion et lrsquoasservissement seul ce qui

neacutecessite un deacutebit de courant de 24105 = 4375 A sur 2 batteries soit asymp2187 A

Comme les batteries au plomb peuvent deacutebiter 02C il nous en faudrait des de asymp 109 Ah

Or les essais de la base roulante ne seront que de courtes dureacutees et lrsquoon se contentera donc drsquoutiliser des batteries de 6 Ah pour des raisons de volume mecircme si elles ne sont pas vraiment bien dimensionneacutees

21 La commande des moteurs

Dans un premier temps nous verrons un bref reacutecapitulatif des cartes et modules drsquoasservissement du commerce

Pour la commande les moteurs plusieurs solutions ont eacuteteacute envisageacutees - Un asservissement lsquotout faitrsquo analogique modules laquo Escap raquo- Une solution lsquoartisanalersquo carte avec asservissement numeacuterique- Un asservissement lsquotout faitrsquo numeacuterique circuits laquo LM629 raquo

a Comparatifs des modules drsquoasservissement et calcul des correcteurs

Veille technologique sur les systegravemes drsquoasservissement utiliseacutes par les diffeacuterentes eacutecoles de la coupe E= M6

Le but de cette partie est drsquoeacutetudier les principales techniques drsquoasservissement utiliseacutees par les eacutecoles de la Coupe E=M6 Ce document est loin drsquoecirctre exhaustif et servira de base agrave compleacuteter et actualiser pour les semestres et eacutequipes prochaines

Apregraves une eacutetude sur plus drsquoune trentaine drsquoeacutecoles il ressort trois formes drsquoasservissement la plus utiliseacutee agrave 85 est du type PID en majoriteacute reacuteduit au PI ensuite viennent les microcontrocircleurs PIC associeacutes au PID et les modules AVR nous allons par la suite deacutetailler ces trois solutions Il existe eacutegalement des systegravemes de controcircle dits agrave retour drsquoeacutetat jamais utiliseacutes jusqursquoagrave preacutesent pour la Coupe crsquoest pourquoi nous ne deacutevelopperons pas son approche

3 Systegraveme PID

httpwwwancrorgfichtechactionpidindexhtm

a Principe

Pour pouvoir tester un asservissement il faut dabord reacutealiser une plate-forme de deacuteveloppement le plus geacuteneacuteralement du type suivant Mais pour commencer un brin de theacuteorie illustreacute par des exemples Le scheacutema de principe est repreacutesenteacute ci-dessous

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

Nous avons bien un scheacutema en boucle fermeacutee puisque la sortie du systegraveme est reacuteinjecteacutee dans lentreacutee Les trois blocs bleus correspondent chacun agrave une fonctionnaliteacute Ki est le coefficient inteacutegral Kp le coefficient proportionnel et Kd le coefficient deacuteriveacute Chacun de ces coefficients a une fonctionnaliteacute bien preacutecise Commenccedilons par le plus simple le proportionnel

b Asservissement P

Lasservissement proportionnel est essentiel au fonctionnement du PID Il permet essentiellement de donner de la puissance au moteur Voici quelques reacutesultats dexpeacuterimentations avec Ki=0 et Kd=0

La courbe noire repreacutesente la consigne que lon deacutesire atteindre (Ud) cest un eacutechelon de valeur 32 La courbe bleue repreacutesente la vitesse reacuteelle du systegraveme (Y) Comme vous pouvez le constater plus Kp est grand plus le systegraveme converge vite vers sa valeur finale Mais en contrepartie pour des valeurs de Kp trop grandes le systegraveme oscille Mais lagrave nest pas notre plus gros problegraveme en effet sur ces courbes on voit nettement que la vitesse du moteur natteint jamais la vitesse deacutesireacutee Cest ce que lon appelle lerreur statique elle correspond agrave la diffeacuterence entre la vitesse reacuteelle et la vitesse deacutesireacutee en reacutegime eacutetablie (une fois que le systegraveme sest stabiliseacute) Pour compenser cette erreur statique on rajoute le terme inteacutegral

c Asservissement PI

Le correcteur inteacutegral sert principalement agrave supprimer lerreur statique Lideacutee principale est de charger ou inteacutegrer lerreur depuis le deacutebut et dajouter cette erreur agrave la consigne jusquagrave ce quelle devienne nulle Lorsque cette erreur est nulle le terme inteacutegral se stabilise et il compense parfaitement lerreur entre la consigne et la vitesse reacuteelle Deacutemonstration en image

On voit cette fois-ci que le terme inteacutegral a bien fonctionneacute et que lerreur statique est nulle On constate aussi que plus le gain Ki est grand plus le systegraveme converge vite En revanche plus Ki est grand plus le systegraveme oscille et plus le deacutepassement est grand Sur des asservissements en position le terme deacuteriveacute permet de diminuer le deacutepassement et les oscillations Nous allons voir que dans notre cas nous avons quelques problegravemes

d Asservissement PID ou agrave avance de phase

On a donc rajouteacute le terme deacuteriveacute comme tout bon livre dautomatique le preacuteconise et voici les reacutesultats

Cette fois ci jai choisi de repreacutesenter la tension appliqueacutee au moteur (U) le problegraveme est bien plus flagrant ici Vous voyez que lorsque lon ajoute le terme deacuteriveacute la commande est extrecircmement bruiteacutee En reacutealiteacute on somme agrave la commande la deacuteriveacutee de la vitesse reacuteelle que lon multiplie par un gain Kd La deacuteriveacutee dune vitesse est une acceacuteleacuteration cela signifie que lon amplifie tous les bruits dacceacuteleacuteration et en plus on les multiplient par un gain Kd Donc rajoute du bruit amplifieacute dans la commande Alors pourquoi mettent t-ils ce terme deacuteriveacutee dans les livres Simplement parce que ce bruit est typique des asservissement en vitesse Sur des asservissements en position ce problegraveme est moins freacutequent car la deacuteriveacutee de la position est la vitesse

Ici le problegraveme eacutetait visible parce que nous avons reacutealiseacute toutes ces courbes sur un systegraveme reacuteel Si nous avions simuleacute ces reacutesultats lacceacuteleacuteration naurait pas eacuteteacute bruiteacutee et les courbes auraient eacuteteacute parfaites Pour impleacutementer ce PID sur notre robot il a fallu programmer en numeacuterique une deacuteriveacutee et une inteacutegrale

e PID numeacuterique et reacuteglage

Notre premier problegraveme est de programmer le terme inteacutegral Il existe une meacutethode qui consiste agrave estimer la surface entre deux eacutechantillons mais dans notre cas nous avons des problegravemes dus aux bruits et agrave la freacutequence deacutechantillonnage Alors il faut sommer toutes les erreurs depuis de deacutebut

Notre second problegraveme est de programmer le terme deacuteriveacute La meacutethode ici est de calculer la pente entre deux eacutechantillons de e Theacuteoriquement cela revient agrave faire le calcul suivant

Avec la peacuteriode deacutechantillonnage Pour faire un asservissement numeacuterique il faut impeacuterativement avoir une peacuteriode fixe Pour gagner du temps de calcul geacuteneacuteralement on inteacutegre directement dans le gain Kd

Voici un lalgorithme exemple

Ti = 0 Initialise le terme inteacutegral

for ( i=1 i lt= Nb_cycles i++ )

Init_timers (1) Initialise le timer agrave notre peacuteriode 1 ms

Y = Codeur () Stoque la valeur du codeur dans Y Rst_codeur () Remet le codeur agrave zeacutero Ud = Consigne () Mise agrave jour de la consigne e_old=e Stoque e(t-1) e = Ud - Y Calcul de lerreur Ti = Ti + e Calcul de linteacutegral Calcul du PID U = Kp e Terme proportionnel

+ Ki Ti Terme inteacutegral + Kd ( e - e_old ) Terme deacuteriveacute Moteur (U) On applique la consigne

while ( end_timer() ) On attend la fin de la peacuteriode

Pour le reacuteglage des gains Kp Ki et Kd il existe diffeacuterentes meacutethodes Ici nous lavons fait de maniegravere empirique et le reacutesultats est plutocirct bon Linconveacutenient de ces meacutethodes est quelles demandent un modegravele du systegraveme ce qui est geacuteneacuteralement dur agrave produire Il existe

aussi des composants programmables qui permettent de faire directement lasservissement numeacuterique (HCTL 1100 LM629) Ils sont exactement baseacutes sur la meacutethode preacutesenteacutee ici

Pour ce qui est du reacuteglage des correcteurs lrsquooptimal est drsquoutiliser la meacutethode de lrsquooptimum dissymeacutetrique une fois que lrsquoon agrave reacutealiseacute le modegravele du systegraveme La plus part des eacutecoles ne reacutealisent pas ce modegravele et ce limite donc agrave une correction empirique en reacutealisant des tests ou en utilisant la meacutethode Ziegler-Nichols agrave partir de la reacuteponse agrave un eacutechelon de tension

Par la suite nous rappellerons les meacutethodes de Ziegler-Nichols et de lrsquooptimum dissymeacutetrique

f Les meacutethodes de Ziegler-Nichols

Ces meacutethodes fournissent des reacuteglages pour des correcteurs de type PID (pouvant ne comporter quune action Proportionnelle une action Proportionnelle et une action Inteacutegrale ou les 3 actions simultaneacutement) dont la structure est la suivante

bull MEacuteTHODE DE ZIEGLER NICHOLS TEMPORELLE

Elle est adapteacutee aux systegravemes stables en boucle ouverte qui ont une reacuteponse apeacuteriodique La reacuteponse agrave un eacutechelon unitaire du systegraveme physique doit ecirctre enregistreacutee Diffeacuterentes caracteacuteristiques de la reacuteponse obtenue sont mesureacutees

Le modegravele approcheacute utiliseacutee par Ziegler Nichols comporte une constante de temps et un retard pur ou bien un retard pur et un inteacutegrateur

Si le systegraveme physique comporte un inteacutegrateur les mesures de a et de L demeurent disponibles sur le deacutebut de la reacuteponse

Les reacuteglages suggeacutereacutes par la meacutethode temporelle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 1a - -correcteur PI 09a 3L -

correcteur PID 12a 2L L2Concernant le raffinement des reacuteglages augmenter Kp ou diminuer Ti augment les

oscillations de la sortie

bull MEacuteTHODE DE ZIEGLER NICHOLS FREacuteQUENTIELLE

Cette meacutethode convient particuliegraverement bien aux systegravemes instables en boucle ouverte pour lesquels la meacutethode temporelle nest pas envisageable Lexpeacuterimentation se fait sur le systegraveme boucleacute avec un simple gain proportionnel qui doit ecirctre stable Le principe est de modifier la valeur du gain par essai-erreur jusquagrave atteindre la limite de stabiliteacute (pheacutenomegravene de pompage) Il reste agrave relever le gain limite K0 obtenu et agrave mesurer la peacuteriode T0 des oscillations de la reacuteponse obtenue

Les reacuteglages suggeacutereacutes par la meacutethode freacutequentielle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 05 K0 - -correcteur PI 045 K0 08 T0 -

correcteur PID 06 K0 05 T0 0125 T0

A la page Internet suivante vous trouverez un simulateur de cette meacutethode

httpwww-hadocensieginpgfrhadocateliersreglageEmpCorrReglEmpCorrDroithtml

g Meacutethode de lrsquooptimum dyssimeacutetique (voir poly MC06 Chap 5 et 8)

Cette meacutethode srsquoapplique une fois le modegravele reacutealiseacute et mis sous la forme drsquoun second ordre

et on obtient le correcteur PI

pour une surtension deacutesireacutee QdB

Q = 10^(QdB20)λ= radic(Qsup2(Qsup2-1))Δφ = arcos (1 λ)α= ((1+sin(Δφ))cos(Δφ))sup2ωN= ωQαω0= ωQradicαKP= ω0 λ KQ

4 Les microcontrocircleurs

a Avant propos

Cette fiche se veut ecirctre sous la forme dun projet Un projet non termineacute ougrave chacun peut apporter sa contribution (ameacuteliorations adaptations corrections etc)De ce fait ces pages sont ameneacutees agrave eacutevoluer et vous-mecircme pourrez participer agrave leur eacutevolution

Pourquoi avoir choisit un tel mode de travail Tout simplement parce que le sujet est vaste et que des variations sont possibles suivant lutilisation quen feront les diffeacuterentes personnes

Le but de ce projet est de reacutealiser une double asservissement de vitesse (type PID) de deux moteurs sur un seul PIC (type 16F877) Lutiliteacute majeure eacutetant de faire rouler un robot bien droit et agrave la bonne vitesse A quoi ccedila sert plus preacuteciseacutement

Avec un seul PIC ce projet permet aux roboticiens amateurs et chevronneacutes de reacutealiser facilement leur asservissement de vitesse de moteurs agrave courant continu (en geacuteneacuteral les moteurs de propulsions de leur robot mais ccedila peut ecirctre bien sucircr dautres moteurs) La commande de lasservissement pourra se faire agrave terme en liaison seacuterie (deacutejagrave fait) I2C ou par bus ISA

b Avantages

Il existe bien sucircr dautres systegravemes qui gegraverent un asservissement de vitesses Des systegravemes professionnels existent comme les LM629 Ils ont linconveacutenient decirctre cher (et ce pour un seul moteur) et relativement complexes

Pourquoi chercher un fusil pour chasser des moustiques Le double asservissement sur PIC vous coucircte le prix dun PIC soit environ 15Euro pour un 16F877 actuellement et ce pour 2 moteurs Ce double asservissement se veut relativement simple De plus vous pouvez en modifier le programme et ladapter agrave vos besoins

c Inconveacutenients

Les personnes qui auront les moyens preacutefeacutererons opter pour un systegraveme professionnel certainement pour des raisons de fiabiliteacute mais cest agrave leurs risques et peacuterils -)La puissance du PIC eacutetant limiteacutee il ne peut pas reacutealiser des PID trop rapides ou trop complexes Il y a en particulier une limitation sur le nombre dimpulsions par seconde quil est capable de geacuterer

Le langage utiliseacute eacutetant le C il faut une licence du logiciel pour pouvoir modifier et recompiler le code source c Mais le projet se veut geacuteneacuterique Une version donneacutee pourra ecirctre utiliseacute sans recompilation en respectant quelques contraintes

d Asservissement

En fait on pourrait imaginer quil suffirait denvoyer au moteur une puissance constante pour quil tourne tout le temps agrave la mecircme vitesse Ce nest pas vrai du tout Tout dabord 2 moteurs dune mecircme seacuterie nauront pas forceacutement le mecircme comportement Ensuite parce que les niveaux de tension ou dautre diffeacuterences eacutelectriques peuvent jouer Enfin parce que des influences exteacuterieures (obstacles frein meacutecanique du robot) peuvent jouer

Du coup il est tregraves difficile de faire aller un moteur agrave la vitesse voulue Parfois ce nest pas gecircnant mais ccedila peut lecirctre Un exemple classique est le robot avec 2 roues motrices type char une configuration qui est tregraves courante Mais pour que ce robot aille droit il faut que les 2 moteurs aillent exactement agrave la mecircme vitesse

La solution est de faire un asservissement Cest a dire moduler dynamiquement la puissance envoyeacute aux moteurs suivant leur vitesse mesureacutee afin dadapter celle-ci agrave ce qui est deacutesireacuteeCela implique un eacuteleacutement tregraves important pour asservir il faut un capteur de vitesse du moteur En geacuteneacuteral il sagit dun compte-tour qui enverra N impulsions (ou pas) par tour de moteur Ensuite un programme va calculer en fonction de la vitesse mesureacutee du moteur la puissance agrave utiliser

Les asservissements sont constamment en train de chercher leacutequilibre Il faut bien comprendre quils mettent un certain temps agrave latteindre et ce dernier peut aussi ecirctre instable si lasservissement est mal reacutegleacute

Lasservissement quon va utiliser ici est un classique PIDou plus preacuteciseacutement un PI car pour des raisons de vitesses de traitement la composante deacuteriveacutee est laisseacutee de coteacute (mais rien de difficile agrave rajouter)

Le PID ou Proportionnel Inteacutegrale Deacuteriveacute est une meacutethode de calcul dasservissement

Soit Kp Ki et Kd les coefficients proportionnels inteacutegrale et deacuteriveacuteSoit e lerreur Vitesse mesureacutee moins vitesse demandeacuteeSoit Ti le terme inteacutegral dabord initialiseacute agrave 0

Consigne a appliquer (PWM) = Kp e + (1Ki) (Ti += e) + Kd (e - e(t-1))

On pourrait dire des pages et des pages sur le PID et ce nest pas mon but ici Merci de vous reporter au lien ci-dessous

Pour plus de deacutetails sur le PID la page de lANCR httpwwwancrorgfichtechactionpidindexhtmChez les Fribottes la Simulation de Jean-Claude httpwwwwikifreefrWiKiFriindexphpSimulateur20de20PID

e Le pic

Le PIC est un petit microcontrocircleur assez bon marche et simple a programmer comme a utiliser

La aussi je vais pas rentrer dans les deacutetails vous pouvez vous reporter agrave la bdtech du site Fribotte et en particulier aux cours de Bigonoff

Le PIC est ici programmeacute en C voir la page Fribotte ici Lutilisation du langage C permet dalleacuteger consideacuterablement le deacuteveloppement dune application compliqueacutee

2 Module AVR

httpwwwenseirbfr~matzfravrphp

Tregraves peu de renseignement sur ce module sinon ces informations drsquoun eacutetudiant de lrsquoEnseirb

Depuis plusieurs anneacutees je participe agrave la coupe de robotique E=M6 dont lobjectif pour chaque eacutequipe est de fabriquer un robot autonome devant se conformer agrave un regraveglement Pour plus dinfos vous pouvez vous rendre sur le site de mon eacutequipe Microb Technology ou bien sur le site de Planegravete Sciences lorganisme beacuteneacutevole qui organise cette compeacutetition

Jai deacutecouvert en 2001 les microcontrocircleurs Atmel AVR auxquels je me suis beaucoup attacheacute dune part parce quils sont assez performants pour des microcontrocircleurs 8 bits mais aussi et surtout car le fameux compilateur libre GCC est capable de compiler du code C pour ces petites becirctes Il existe de surcroicirct plusieurs outils libres permettant de les programmer de les simuler etc

Le but de ce projet est donc de deacutevelopper des modules servant dinterface geacuteneacuterique avec le hardware du microcontrocircleur quel que soit la version (par exemple les UART inclus dans les AVR AtMega sont diffeacuterents de ceux preacutesents dans les petits AVR) et de deacutevelopper des modules utiles pour certaines utilisations usuelles et pas seulement pour la coupe E=M6 (codage de hamming asservissement chiffrement etc)

Vous pouvez contacter leacutequipe de deacuteveloppement agrave avr-devdroids-corporg Pour le moment aucune release na eacuteteacute faite mais le travail est deacutejagrave bien avanceacute Chaque soir un screenshot du CVS est reacutealiseacute Il peut ne pas compiler mais normalement ccedila devrait fonctionner Voici le lien

3 Modules drsquoasservissement analogique laquo Escap raquo

Nous avons essayeacute de reacutecupeacuterer les cartes de commande Escap pour moteurs Escap qui avaient eacuteteacute utiliseacutees en 96 et 98 avec succegraves

Nous les avons monteacutes sur une base roulante qui pesait en tout 74 kgVoici grosso-modo leurs avantages et leurs inconveacutenients (pour les notices techniques voir le rapport 96 ou 98)

a Avantages

Cette carte inclut directement un asservissement avec correcteur PI la commande de puissance les ponts en H

Elle est tregraves facile agrave utiliser Elle est speacutecialement conccedilue pour les moteurs Escap que nous avons donc

parfaitement adapteacutee

b Inconveacutenients

Les moteurs ne fonctionnent correctement que sous 24v Les cartes et les moteurs semblent assez gourment Les cartes nantis de gros radiateurs sont relativement encombrantes Les tachymegravetres monteacutes sur les moteurs ne donnent pas une indication de position

mais de vitesse (qui plus est en analogique)

Nous avons preacutefeacutereacute refaire la partie commande car celle de 1996 souffrait de quelques deacutefauts (cf rapport 1996)

La conversion numeacuterique analogique

Pour reacutealiser la conversion numeacuterique analogique nous avons choisit un pont agrave reacutesistance R-2R

Nous pouvons consideacuterer que chaque bit est relieacute agrave un geacuteneacuterateur ideacuteal de tension (qui deacutelivre 0v ou 5v) Par conseacutequent la reacutesistance eacutequivalente quelque soit lrsquoeacutetat des bits et quelques soit le nombre de bits vue entre la sortie et la masse sera eacutegal agrave R

La tension Vs en fonction de lrsquoeacutetat des bits sera

Ce type de CAN eacutetant tregraves classique nous nrsquoindiquerons pas les deacutemonstrations toutefois vous pourrez les trouver tregraves facilement sur Internet ou sur le Cd-rom drsquoannexes joint au dossier

Le montage de Thevenin eacutequivalent est donc

Nous avons jugeacute qursquoune discreacutetisation sur 8 bits eacutetait un peu superflu crsquoest pourquoi nous nous contenterons de 4 bits (ce qui repreacutesentent quand mecircme 16 niveaux de vitesse)

bull Lrsquoadaptation du niveau de tension

Nous avons agrave la sortie du CAN une tension qui srsquoeacutetend de 0 agrave 5v or la commande des cartes Escap ce fait entre -5v et +5v

On peut voir cette adaptation comme lrsquoajout drsquoun offset de -25v et une amplification de gain 2

Voici le montage reacutealisant cette conversion

M1 est un montage suiveur qui lsquorecopiersquo la tension aux bornes de P1 mais sous une impeacutedance constante et eacutegale agrave 4R En 1996 lrsquoeacutequipe avait brancheacute P1 directement sur M3 mais cela a pour inconveacutenient de faire varier agrave la fois lrsquooffset et la penteLe potentiomegravetre P1 permet drsquoajuster lrsquooffset (permet par conseacutequent de reacutegler lrsquoarrecirct complet de moteur) (La valeur theacuteorique de lrsquooffset est 5V (cf formule en M3))

M2 est aussi un montage suiveur Le potentiomegravetre P2 permet drsquoajuster la pente (qui doit avoir un coefficient directeur de 2) Comme M2 est connecteacute au CAN dont la reacutesistance interne est de R P2 doit ecirctre a peut precirct eacutegal agrave R de la sorte la branche aura une reacutesistance eacutequivalente de 2R

M3 Sommateur (Vs = - 2 (Ve + Voffset))

Qursquoelle valeur choisir pour R

Theacuteoriquement on peut choisir nrsquoimporte quelle valeur pour R mais en pratique si R est trop petite une intensiteacute importante serait consommeacutee sans raison et si R est trop grande la forte impeacutedance du montage le rendra tregraves sensible aux parasites (secteur moteurshellip)Ce montage a eacuteteacute testeacute et fonctionne correctement pour R=5k les amplificateurs opeacuterationnels utiliseacutes sont des LM324 mais drsquoautres seraient tout agrave fait envisageables (peu de contraintes de vitesse et de tensions de deacutechets)

4 Conclusion

Nous avons preacutefeacutereacute ne pas utiliser les cartes Escap car les moteurs ne renvoient pas une position sous forme drsquoimpulsion mais une vitesse Etant donneacute que nous avions envisageacute un repeacuterage par odomeacutetrie cela compliquait consideacuterablement la tache

Toutefois il faut savoir que cette solution a eacuteteacute testeacutee et fonctionne tregraves bien (bonne preacutecision bonne dynamique) ainsi dans le cas ougrave le repeacuterage ne se fait pas par odomeacutetrie mais des balises exteacuterieures sachez que cette solution est tregraves pratique agrave utiliser En effet pour imposer une vitesse il suffit au microcontrocircleur drsquoappliquer sur un port un mot binaire correspondant agrave la vitesse voulue hellip et crsquoest tout La carte Escap se charge du reste

5 Carte drsquoasservissement numeacuterique laquo artisanale raquo

La carte reacutealiseacutee baseacutee sur un microcontrocircleur PIC 16F877A srsquoest aveacutereacutee fonctionnelle mais les tests drsquoalgorithmes drsquoasservissement nrsquoont pas eacuteteacute effectueacutesEn effet lrsquoutilisation de cette solution neacutecessite un microcontrocircleur deacutedieacute agrave lrsquoasservissement capable de communiquer via un protocole agrave deacutefinir avec la laquo carte megravere raquo (centralisant les retours des autres capteurs du robot et agissant sur les diffeacuterents actionneurs en fonction de la strateacutegie)Or afin de limiter le nombre de microcontrocircleurs sur le robot et du fait que lrsquoon dispose drsquoun budget suffisant nous avons deacutecideacute drsquoessayer drsquoutiliser des composants speacuteciaux reacutealisant lrsquoasservissement

Le systegraveme se deacutecompose en

- Un microcontrocircleur pour appliquer la PWM asservir et commander- Une carte de puissance pour chaque moteur baseacutee sur un LMD18200- Une carte compteur drsquoimpulsions pour les codeurs

Afin de favoriser lrsquointeractiviteacute et les reacuteglages jrsquoai ajouteacute une carte afficheur LCD avec 6 boutons sur la carte microcontrocircleur

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 18: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

Effectivement lors de la conception du bloc moteur nous avons penseacute aux anneacutees futures et nous avons donc preacutevu un montage des moteurs agrave la verticale ou agrave lrsquohorizontale

En position verticale

En position horizontale

4 Les roues

Comme vu lors de la veille technologique les chenilles ont quasiment disparu de la compeacutetition Ceci est ducirc au fait que cette technologie est difficile agrave mettre en œuvre et que les regraveglements proposent des aires de jeux totalement planes

Or cette anneacutee un fosseacute fait son apparition dans le regraveglement Ce fosseacute de 36 mm de profondeur vient seacuteparer deux aires de jeu Une neacutecessiteacute de traverser le fosseacute apparaicirct donc pour aller renverser les quilles de lrsquoadversaire

Deux solutions sont alors possibles bull Traverser sur le pont aleacuteatoirebull Traverser le fosseacute

Si nous choisissons de traverser par le pont lrsquoideacutee de garder notre systegraveme de roues est correcte par contre un systegraveme agrave chenille permettrait de passer par le fosseacute

Apregraves reacuteflexion de lrsquoeacutequipe PR et des membres de la Coupe E=M6 la solution de traverser par le pont est retenue Ce qui nous a conduit tout droit vers la solution agrave roues

Les roues utiliseacutees sont des roues de roller de diamegravetre 80mm et drsquoune largeur de 22mm Ces roues sont relieacutees agrave lrsquoarbre drsquoun renvoi drsquoangle par lrsquointermeacutediaire drsquoun accouplement en aluminium

5 La base

Pour la base du robot il nous a parut indispensable de dimensionner la plaque de fond en eacutepaisseur De plus afin de maintenir la solution de modulariteacute de lrsquoensemble moteurs ndash roues nous avons deacutecideacute de fixer les deux supports moteurs sur un platine qui sera elle-mecircme fixeacutee agrave la plaque de fond du robot

Premiegraverement nous avons effectueacute un dimensionnement succinct de la platine

a Reacuteaction drsquoappui

0=sum Fx OK

0=sum Fy qLRbRaorRbRaqL210 =+=++minus

qLRa21=

AB = 027 m = L

P = mg P = 15 x 10 = 150 N

Q = 150 N270 mm soit q = 555 Nm

Bille folle

Accouplement

Bloc moteur

Renvoi drsquoangle

Platine

Base du robot

Motoreacuteducteur

Roue

b Moment de flexion

0 =sum= cMMf

02

sup2 =minus+ RaxqxMf

sup221

21 qxqLxMf minus=

c Flegraveche

)( xMfEIY =

sup221

21 qxqLxEIY minus=

161sup2

41 3 CqxqLxEIY +minus=

21241

121 43 CxCqxqLxEIY ++minus=

d Conditions aux limites

Y (x=0) = 0 C2 = 0

Y (x=L) = 0 012412

44

=+minus LCqLqL

241

4qLLC =

241

3qLC =

On obtient donc

xqLqxqLxEIY 343

241

241

121 +minus=

De mecircme

+minus=

242412

343 xLxLxEIqY

On sait que bull E = 210 000 10^6bull Y = 1 10^-3 mbull Q = 555 Nmbull L = 027 m

bull12

3bhI = b = 006 m

+

minus

=24

22416

128

343 LL

LLL

EYqI

36

4

0010102100000601052155512timestimes

timestimes=minus

h

Et enfin on trouve h lrsquoeacutepaisseur de la platine h= 43 mm

Apregraves reacuteflexion nous nous sommes rendu compte que ce calcul nrsquoeacutetait pas rigoureux car nous avons consideacutereacute la theacuteorie des poutres or dans notre cas nous ne pouvons satisfaire cette theacuteorie (Longueur de la section = 10 x la largeur de la section)

Il nous faut donc utiliser un modegravele plus preacutecis crsquoest pourquoi nous avons deacutecideacute de faire un calcul par eacuteleacutements finis sous Ideacuteas Ainsi nous trouvons une eacutepaisseur h = 32 mm

Il nous faut donc une platine de plus de 3 mm Etant donneacute que la platine sera solidairement fixeacutee agrave la base du robot nous avons deacutecideacute de prendre une eacutepaisseur de platine de 2 mm et une eacutepaisseur de base de robot de 2 mm Nous obtenons donc une eacutepaisseur totale de 4 mm Ainsi nous devrions avoir sous une charge de 15 kg moins drsquoun millimegravetre de flexion de la base du robot

6 Reacutesultats

Assemblage en position horizontale

Vue eacuteclateacutee en position verticale

Photo de lrsquoassemblage roues ndash blocs moteurs ndash moteurs ndash platine

Partie C Lrsquoeacutelectronique20 Les batteries

Afin de pouvoir choisir les batteries approprieacutees agrave notre application nous devons dans un premier temps faire une estimation de la consommation drsquoeacutenergie totale avec les pointes de courant envisageacutees dans notre robotIl est agrave noter que nous ne connaissons pas encore en deacutetail tous les eacuteleacutements annexes qui seront implanteacutes dans le robot comme par exemple les capteurs et actionneurs diverses qui seront choisis en fonction des objectifs technologiques atteints ou non de lrsquoassociation et de la strateacutegie finaleDans le but de pouvoir utiliser agrave nouveau dans lrsquoavenir notre base roulante nous avons choisi de surestimer les besoins en eacutenergie de sorte agrave ne pas ecirctre pris au deacutepourvu

La consommation pourrait se deacutecomposer ainsi - 2 moteurs de 24V sous 21A soit 1008 Watts pendant 100 du temps- 3 actionneurs de 21 Watts chacun soit 63 Watts pendant 50 du temps- 3A pour lrsquoeacutelectronique sous 5V soit 15 Watts pendant 100 du temps (Asservissement carte de commandes capteurs)

Ce qui nous fait au total une consommation maximale ~180 WattsLa consommation permanente devrait ecirctre ~147 Watts permanents il faut donc que les batteries puissent deacutebiter un courant de ~6 A sous 24 V durant le fonctionnement du robot

Apregraves une longue recherche on a pu reacutealiser le tableau comparatif des batteries suivant

typeDensiteacute

deacutenergie (WhKg)

Densiteacute deacutenergie (WhL)

auto-deacutecharge (mois)

voltage dune cellule (V)

temps de charge rapide

plomb 35 111 5 agrave 10 2 8h agrave 15h

NiCd (Nickel Cadnium) 50 94 10 agrave 20 12 1h30min

NiMH (Nickel Metal Hydride) 80 135 20 agrave 30 13 2h agrave 4h

Lithium Ion 100 196 5 agrave 10 36 2h agrave 4h

Lithium polymer 150 200 5 agrave 10 36 2h agrave 4h

AlKaline rechargeable 80 15 2h agrave 3h

type

cycle de charge-deacutecharge avant

que capaciteacute passe de 100 agrave

80

Courant max Courant max pic effet meacutemoire estimation

(euroWh) prixcycles

plomb 200 agrave 300 02C 05C M 0895 0003

NiCd (Nickel Cadnium) 1500 1C 20C H 416 0003

NiMH (Nickel Metal Hydride) 300 agrave 500 05C 5C L 2 0004

Lithium Ion 500 agrave 1000 1C 2C L 8 0008

Lithium polymer 300 agrave 500 1C 2C agrave 5C L 32 0006

AlKaline rechargeable 50 02C 05C H 178 0036

Effet meacutemoire L (Low) M (Medium) H (High)Courant max C signifie capaciteacute par exemple une batterie qui peut deacutelivrer un courant max de 1C de 4Ah pourra donc deacutelivrer 4A au maximum sans risque de deacuteteacuterioration

Nous nous sommes inteacuteresseacutes au courant maximum et au temps de charge rapide pour notre choix de batteriesLe type de batterie qui semble le plus approprieacute pour nous est le type Nickel-Cadnium parfaitement adapteacute au pic drsquoappel de courant que provoquent des moteurs pouvant supporter des charges rapides en 1h30min seulement afin de devoir preacutevoir trop de jeux de batteries diffeacuterents

Les batteries LI-Ion ou LI-Polymer preacutesentent une densiteacute eacutenergeacutetique tregraves inteacuteressante mais leur prix est beaucoup plus eacuteleveacute agrave lrsquoachat et de plus dans notre application roulant sur un sol peu accidenteacute la masse pouvant ecirctre transporteacutee est suffisante pour le type NiCd

Les batteries LI-Ion ou LI-Polymer sont plus adapteacutees agrave lrsquoaeacuteromodeacutelisme ou au petit appareil eacutelectroniqueQuant aux batteries au plomb qui sont vraiment bon marcheacute le courant maximum supporteacute est trop faible est supposerait drsquoavoir une forte capaciteacute

Nous voulons avoir une autonomie de 30 minutes il nous faut donc une eacutenergie de 735 WhOr sous 24 V les batteries doivent avoir une capaciteacute de ~3 AhComme les batteries NiCd peuvent deacutebiter un courant maximum de 1C (une fois leur capaciteacute) nous devons donc prendre des batteries de 6Ah sous 24 V ce qui nous donnera une autonomie de 1 heure

Il faudra donc soit acheter un bloc accumulateur NiCd de 24 V 6 Ah srsquoil existe dans le commerce soit le reacutealiser nous mecircme en assemblant diffeacuterents eacuteleacutements

Rappelons que lrsquoassociation en seacuterie permet drsquoadditionner les tensions des eacuteleacutements associeacutes et que lrsquoassociation en parallegravele permet drsquoadditionner les courants deacutebiteacutes

Par exemple des eacuteleacutements de 12 V chacun pour 3 Ah srsquoassocieraient ainsi

Soit deux seacuteries de 20 eacuteleacutements eacutequivalentes agrave 24 V et faisant une capaciteacute de 3 Ah chacune

Il est possible de reacutepartir les accumulateurs en diffeacuterents paquets pour faciliter le rangement dans le robot ou reacutepartir la masse ou eacuteventuellement trouver des packs dans le commerce

Dans le cas de lrsquoUV PR le choix des batteries reste pour le moment sur les NiCd mais pour les essais pratiques on utilisera des batteries au plomb que lrsquoon possegravede deacutejagrave drsquoautant plus que les essais sont reacutealiseacutes avec les moteurs de propulsion et lrsquoasservissement seul ce qui

neacutecessite un deacutebit de courant de 24105 = 4375 A sur 2 batteries soit asymp2187 A

Comme les batteries au plomb peuvent deacutebiter 02C il nous en faudrait des de asymp 109 Ah

Or les essais de la base roulante ne seront que de courtes dureacutees et lrsquoon se contentera donc drsquoutiliser des batteries de 6 Ah pour des raisons de volume mecircme si elles ne sont pas vraiment bien dimensionneacutees

21 La commande des moteurs

Dans un premier temps nous verrons un bref reacutecapitulatif des cartes et modules drsquoasservissement du commerce

Pour la commande les moteurs plusieurs solutions ont eacuteteacute envisageacutees - Un asservissement lsquotout faitrsquo analogique modules laquo Escap raquo- Une solution lsquoartisanalersquo carte avec asservissement numeacuterique- Un asservissement lsquotout faitrsquo numeacuterique circuits laquo LM629 raquo

a Comparatifs des modules drsquoasservissement et calcul des correcteurs

Veille technologique sur les systegravemes drsquoasservissement utiliseacutes par les diffeacuterentes eacutecoles de la coupe E= M6

Le but de cette partie est drsquoeacutetudier les principales techniques drsquoasservissement utiliseacutees par les eacutecoles de la Coupe E=M6 Ce document est loin drsquoecirctre exhaustif et servira de base agrave compleacuteter et actualiser pour les semestres et eacutequipes prochaines

Apregraves une eacutetude sur plus drsquoune trentaine drsquoeacutecoles il ressort trois formes drsquoasservissement la plus utiliseacutee agrave 85 est du type PID en majoriteacute reacuteduit au PI ensuite viennent les microcontrocircleurs PIC associeacutes au PID et les modules AVR nous allons par la suite deacutetailler ces trois solutions Il existe eacutegalement des systegravemes de controcircle dits agrave retour drsquoeacutetat jamais utiliseacutes jusqursquoagrave preacutesent pour la Coupe crsquoest pourquoi nous ne deacutevelopperons pas son approche

3 Systegraveme PID

httpwwwancrorgfichtechactionpidindexhtm

a Principe

Pour pouvoir tester un asservissement il faut dabord reacutealiser une plate-forme de deacuteveloppement le plus geacuteneacuteralement du type suivant Mais pour commencer un brin de theacuteorie illustreacute par des exemples Le scheacutema de principe est repreacutesenteacute ci-dessous

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

Nous avons bien un scheacutema en boucle fermeacutee puisque la sortie du systegraveme est reacuteinjecteacutee dans lentreacutee Les trois blocs bleus correspondent chacun agrave une fonctionnaliteacute Ki est le coefficient inteacutegral Kp le coefficient proportionnel et Kd le coefficient deacuteriveacute Chacun de ces coefficients a une fonctionnaliteacute bien preacutecise Commenccedilons par le plus simple le proportionnel

b Asservissement P

Lasservissement proportionnel est essentiel au fonctionnement du PID Il permet essentiellement de donner de la puissance au moteur Voici quelques reacutesultats dexpeacuterimentations avec Ki=0 et Kd=0

La courbe noire repreacutesente la consigne que lon deacutesire atteindre (Ud) cest un eacutechelon de valeur 32 La courbe bleue repreacutesente la vitesse reacuteelle du systegraveme (Y) Comme vous pouvez le constater plus Kp est grand plus le systegraveme converge vite vers sa valeur finale Mais en contrepartie pour des valeurs de Kp trop grandes le systegraveme oscille Mais lagrave nest pas notre plus gros problegraveme en effet sur ces courbes on voit nettement que la vitesse du moteur natteint jamais la vitesse deacutesireacutee Cest ce que lon appelle lerreur statique elle correspond agrave la diffeacuterence entre la vitesse reacuteelle et la vitesse deacutesireacutee en reacutegime eacutetablie (une fois que le systegraveme sest stabiliseacute) Pour compenser cette erreur statique on rajoute le terme inteacutegral

c Asservissement PI

Le correcteur inteacutegral sert principalement agrave supprimer lerreur statique Lideacutee principale est de charger ou inteacutegrer lerreur depuis le deacutebut et dajouter cette erreur agrave la consigne jusquagrave ce quelle devienne nulle Lorsque cette erreur est nulle le terme inteacutegral se stabilise et il compense parfaitement lerreur entre la consigne et la vitesse reacuteelle Deacutemonstration en image

On voit cette fois-ci que le terme inteacutegral a bien fonctionneacute et que lerreur statique est nulle On constate aussi que plus le gain Ki est grand plus le systegraveme converge vite En revanche plus Ki est grand plus le systegraveme oscille et plus le deacutepassement est grand Sur des asservissements en position le terme deacuteriveacute permet de diminuer le deacutepassement et les oscillations Nous allons voir que dans notre cas nous avons quelques problegravemes

d Asservissement PID ou agrave avance de phase

On a donc rajouteacute le terme deacuteriveacute comme tout bon livre dautomatique le preacuteconise et voici les reacutesultats

Cette fois ci jai choisi de repreacutesenter la tension appliqueacutee au moteur (U) le problegraveme est bien plus flagrant ici Vous voyez que lorsque lon ajoute le terme deacuteriveacute la commande est extrecircmement bruiteacutee En reacutealiteacute on somme agrave la commande la deacuteriveacutee de la vitesse reacuteelle que lon multiplie par un gain Kd La deacuteriveacutee dune vitesse est une acceacuteleacuteration cela signifie que lon amplifie tous les bruits dacceacuteleacuteration et en plus on les multiplient par un gain Kd Donc rajoute du bruit amplifieacute dans la commande Alors pourquoi mettent t-ils ce terme deacuteriveacutee dans les livres Simplement parce que ce bruit est typique des asservissement en vitesse Sur des asservissements en position ce problegraveme est moins freacutequent car la deacuteriveacutee de la position est la vitesse

Ici le problegraveme eacutetait visible parce que nous avons reacutealiseacute toutes ces courbes sur un systegraveme reacuteel Si nous avions simuleacute ces reacutesultats lacceacuteleacuteration naurait pas eacuteteacute bruiteacutee et les courbes auraient eacuteteacute parfaites Pour impleacutementer ce PID sur notre robot il a fallu programmer en numeacuterique une deacuteriveacutee et une inteacutegrale

e PID numeacuterique et reacuteglage

Notre premier problegraveme est de programmer le terme inteacutegral Il existe une meacutethode qui consiste agrave estimer la surface entre deux eacutechantillons mais dans notre cas nous avons des problegravemes dus aux bruits et agrave la freacutequence deacutechantillonnage Alors il faut sommer toutes les erreurs depuis de deacutebut

Notre second problegraveme est de programmer le terme deacuteriveacute La meacutethode ici est de calculer la pente entre deux eacutechantillons de e Theacuteoriquement cela revient agrave faire le calcul suivant

Avec la peacuteriode deacutechantillonnage Pour faire un asservissement numeacuterique il faut impeacuterativement avoir une peacuteriode fixe Pour gagner du temps de calcul geacuteneacuteralement on inteacutegre directement dans le gain Kd

Voici un lalgorithme exemple

Ti = 0 Initialise le terme inteacutegral

for ( i=1 i lt= Nb_cycles i++ )

Init_timers (1) Initialise le timer agrave notre peacuteriode 1 ms

Y = Codeur () Stoque la valeur du codeur dans Y Rst_codeur () Remet le codeur agrave zeacutero Ud = Consigne () Mise agrave jour de la consigne e_old=e Stoque e(t-1) e = Ud - Y Calcul de lerreur Ti = Ti + e Calcul de linteacutegral Calcul du PID U = Kp e Terme proportionnel

+ Ki Ti Terme inteacutegral + Kd ( e - e_old ) Terme deacuteriveacute Moteur (U) On applique la consigne

while ( end_timer() ) On attend la fin de la peacuteriode

Pour le reacuteglage des gains Kp Ki et Kd il existe diffeacuterentes meacutethodes Ici nous lavons fait de maniegravere empirique et le reacutesultats est plutocirct bon Linconveacutenient de ces meacutethodes est quelles demandent un modegravele du systegraveme ce qui est geacuteneacuteralement dur agrave produire Il existe

aussi des composants programmables qui permettent de faire directement lasservissement numeacuterique (HCTL 1100 LM629) Ils sont exactement baseacutes sur la meacutethode preacutesenteacutee ici

Pour ce qui est du reacuteglage des correcteurs lrsquooptimal est drsquoutiliser la meacutethode de lrsquooptimum dissymeacutetrique une fois que lrsquoon agrave reacutealiseacute le modegravele du systegraveme La plus part des eacutecoles ne reacutealisent pas ce modegravele et ce limite donc agrave une correction empirique en reacutealisant des tests ou en utilisant la meacutethode Ziegler-Nichols agrave partir de la reacuteponse agrave un eacutechelon de tension

Par la suite nous rappellerons les meacutethodes de Ziegler-Nichols et de lrsquooptimum dissymeacutetrique

f Les meacutethodes de Ziegler-Nichols

Ces meacutethodes fournissent des reacuteglages pour des correcteurs de type PID (pouvant ne comporter quune action Proportionnelle une action Proportionnelle et une action Inteacutegrale ou les 3 actions simultaneacutement) dont la structure est la suivante

bull MEacuteTHODE DE ZIEGLER NICHOLS TEMPORELLE

Elle est adapteacutee aux systegravemes stables en boucle ouverte qui ont une reacuteponse apeacuteriodique La reacuteponse agrave un eacutechelon unitaire du systegraveme physique doit ecirctre enregistreacutee Diffeacuterentes caracteacuteristiques de la reacuteponse obtenue sont mesureacutees

Le modegravele approcheacute utiliseacutee par Ziegler Nichols comporte une constante de temps et un retard pur ou bien un retard pur et un inteacutegrateur

Si le systegraveme physique comporte un inteacutegrateur les mesures de a et de L demeurent disponibles sur le deacutebut de la reacuteponse

Les reacuteglages suggeacutereacutes par la meacutethode temporelle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 1a - -correcteur PI 09a 3L -

correcteur PID 12a 2L L2Concernant le raffinement des reacuteglages augmenter Kp ou diminuer Ti augment les

oscillations de la sortie

bull MEacuteTHODE DE ZIEGLER NICHOLS FREacuteQUENTIELLE

Cette meacutethode convient particuliegraverement bien aux systegravemes instables en boucle ouverte pour lesquels la meacutethode temporelle nest pas envisageable Lexpeacuterimentation se fait sur le systegraveme boucleacute avec un simple gain proportionnel qui doit ecirctre stable Le principe est de modifier la valeur du gain par essai-erreur jusquagrave atteindre la limite de stabiliteacute (pheacutenomegravene de pompage) Il reste agrave relever le gain limite K0 obtenu et agrave mesurer la peacuteriode T0 des oscillations de la reacuteponse obtenue

Les reacuteglages suggeacutereacutes par la meacutethode freacutequentielle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 05 K0 - -correcteur PI 045 K0 08 T0 -

correcteur PID 06 K0 05 T0 0125 T0

A la page Internet suivante vous trouverez un simulateur de cette meacutethode

httpwww-hadocensieginpgfrhadocateliersreglageEmpCorrReglEmpCorrDroithtml

g Meacutethode de lrsquooptimum dyssimeacutetique (voir poly MC06 Chap 5 et 8)

Cette meacutethode srsquoapplique une fois le modegravele reacutealiseacute et mis sous la forme drsquoun second ordre

et on obtient le correcteur PI

pour une surtension deacutesireacutee QdB

Q = 10^(QdB20)λ= radic(Qsup2(Qsup2-1))Δφ = arcos (1 λ)α= ((1+sin(Δφ))cos(Δφ))sup2ωN= ωQαω0= ωQradicαKP= ω0 λ KQ

4 Les microcontrocircleurs

a Avant propos

Cette fiche se veut ecirctre sous la forme dun projet Un projet non termineacute ougrave chacun peut apporter sa contribution (ameacuteliorations adaptations corrections etc)De ce fait ces pages sont ameneacutees agrave eacutevoluer et vous-mecircme pourrez participer agrave leur eacutevolution

Pourquoi avoir choisit un tel mode de travail Tout simplement parce que le sujet est vaste et que des variations sont possibles suivant lutilisation quen feront les diffeacuterentes personnes

Le but de ce projet est de reacutealiser une double asservissement de vitesse (type PID) de deux moteurs sur un seul PIC (type 16F877) Lutiliteacute majeure eacutetant de faire rouler un robot bien droit et agrave la bonne vitesse A quoi ccedila sert plus preacuteciseacutement

Avec un seul PIC ce projet permet aux roboticiens amateurs et chevronneacutes de reacutealiser facilement leur asservissement de vitesse de moteurs agrave courant continu (en geacuteneacuteral les moteurs de propulsions de leur robot mais ccedila peut ecirctre bien sucircr dautres moteurs) La commande de lasservissement pourra se faire agrave terme en liaison seacuterie (deacutejagrave fait) I2C ou par bus ISA

b Avantages

Il existe bien sucircr dautres systegravemes qui gegraverent un asservissement de vitesses Des systegravemes professionnels existent comme les LM629 Ils ont linconveacutenient decirctre cher (et ce pour un seul moteur) et relativement complexes

Pourquoi chercher un fusil pour chasser des moustiques Le double asservissement sur PIC vous coucircte le prix dun PIC soit environ 15Euro pour un 16F877 actuellement et ce pour 2 moteurs Ce double asservissement se veut relativement simple De plus vous pouvez en modifier le programme et ladapter agrave vos besoins

c Inconveacutenients

Les personnes qui auront les moyens preacutefeacutererons opter pour un systegraveme professionnel certainement pour des raisons de fiabiliteacute mais cest agrave leurs risques et peacuterils -)La puissance du PIC eacutetant limiteacutee il ne peut pas reacutealiser des PID trop rapides ou trop complexes Il y a en particulier une limitation sur le nombre dimpulsions par seconde quil est capable de geacuterer

Le langage utiliseacute eacutetant le C il faut une licence du logiciel pour pouvoir modifier et recompiler le code source c Mais le projet se veut geacuteneacuterique Une version donneacutee pourra ecirctre utiliseacute sans recompilation en respectant quelques contraintes

d Asservissement

En fait on pourrait imaginer quil suffirait denvoyer au moteur une puissance constante pour quil tourne tout le temps agrave la mecircme vitesse Ce nest pas vrai du tout Tout dabord 2 moteurs dune mecircme seacuterie nauront pas forceacutement le mecircme comportement Ensuite parce que les niveaux de tension ou dautre diffeacuterences eacutelectriques peuvent jouer Enfin parce que des influences exteacuterieures (obstacles frein meacutecanique du robot) peuvent jouer

Du coup il est tregraves difficile de faire aller un moteur agrave la vitesse voulue Parfois ce nest pas gecircnant mais ccedila peut lecirctre Un exemple classique est le robot avec 2 roues motrices type char une configuration qui est tregraves courante Mais pour que ce robot aille droit il faut que les 2 moteurs aillent exactement agrave la mecircme vitesse

La solution est de faire un asservissement Cest a dire moduler dynamiquement la puissance envoyeacute aux moteurs suivant leur vitesse mesureacutee afin dadapter celle-ci agrave ce qui est deacutesireacuteeCela implique un eacuteleacutement tregraves important pour asservir il faut un capteur de vitesse du moteur En geacuteneacuteral il sagit dun compte-tour qui enverra N impulsions (ou pas) par tour de moteur Ensuite un programme va calculer en fonction de la vitesse mesureacutee du moteur la puissance agrave utiliser

Les asservissements sont constamment en train de chercher leacutequilibre Il faut bien comprendre quils mettent un certain temps agrave latteindre et ce dernier peut aussi ecirctre instable si lasservissement est mal reacutegleacute

Lasservissement quon va utiliser ici est un classique PIDou plus preacuteciseacutement un PI car pour des raisons de vitesses de traitement la composante deacuteriveacutee est laisseacutee de coteacute (mais rien de difficile agrave rajouter)

Le PID ou Proportionnel Inteacutegrale Deacuteriveacute est une meacutethode de calcul dasservissement

Soit Kp Ki et Kd les coefficients proportionnels inteacutegrale et deacuteriveacuteSoit e lerreur Vitesse mesureacutee moins vitesse demandeacuteeSoit Ti le terme inteacutegral dabord initialiseacute agrave 0

Consigne a appliquer (PWM) = Kp e + (1Ki) (Ti += e) + Kd (e - e(t-1))

On pourrait dire des pages et des pages sur le PID et ce nest pas mon but ici Merci de vous reporter au lien ci-dessous

Pour plus de deacutetails sur le PID la page de lANCR httpwwwancrorgfichtechactionpidindexhtmChez les Fribottes la Simulation de Jean-Claude httpwwwwikifreefrWiKiFriindexphpSimulateur20de20PID

e Le pic

Le PIC est un petit microcontrocircleur assez bon marche et simple a programmer comme a utiliser

La aussi je vais pas rentrer dans les deacutetails vous pouvez vous reporter agrave la bdtech du site Fribotte et en particulier aux cours de Bigonoff

Le PIC est ici programmeacute en C voir la page Fribotte ici Lutilisation du langage C permet dalleacuteger consideacuterablement le deacuteveloppement dune application compliqueacutee

2 Module AVR

httpwwwenseirbfr~matzfravrphp

Tregraves peu de renseignement sur ce module sinon ces informations drsquoun eacutetudiant de lrsquoEnseirb

Depuis plusieurs anneacutees je participe agrave la coupe de robotique E=M6 dont lobjectif pour chaque eacutequipe est de fabriquer un robot autonome devant se conformer agrave un regraveglement Pour plus dinfos vous pouvez vous rendre sur le site de mon eacutequipe Microb Technology ou bien sur le site de Planegravete Sciences lorganisme beacuteneacutevole qui organise cette compeacutetition

Jai deacutecouvert en 2001 les microcontrocircleurs Atmel AVR auxquels je me suis beaucoup attacheacute dune part parce quils sont assez performants pour des microcontrocircleurs 8 bits mais aussi et surtout car le fameux compilateur libre GCC est capable de compiler du code C pour ces petites becirctes Il existe de surcroicirct plusieurs outils libres permettant de les programmer de les simuler etc

Le but de ce projet est donc de deacutevelopper des modules servant dinterface geacuteneacuterique avec le hardware du microcontrocircleur quel que soit la version (par exemple les UART inclus dans les AVR AtMega sont diffeacuterents de ceux preacutesents dans les petits AVR) et de deacutevelopper des modules utiles pour certaines utilisations usuelles et pas seulement pour la coupe E=M6 (codage de hamming asservissement chiffrement etc)

Vous pouvez contacter leacutequipe de deacuteveloppement agrave avr-devdroids-corporg Pour le moment aucune release na eacuteteacute faite mais le travail est deacutejagrave bien avanceacute Chaque soir un screenshot du CVS est reacutealiseacute Il peut ne pas compiler mais normalement ccedila devrait fonctionner Voici le lien

3 Modules drsquoasservissement analogique laquo Escap raquo

Nous avons essayeacute de reacutecupeacuterer les cartes de commande Escap pour moteurs Escap qui avaient eacuteteacute utiliseacutees en 96 et 98 avec succegraves

Nous les avons monteacutes sur une base roulante qui pesait en tout 74 kgVoici grosso-modo leurs avantages et leurs inconveacutenients (pour les notices techniques voir le rapport 96 ou 98)

a Avantages

Cette carte inclut directement un asservissement avec correcteur PI la commande de puissance les ponts en H

Elle est tregraves facile agrave utiliser Elle est speacutecialement conccedilue pour les moteurs Escap que nous avons donc

parfaitement adapteacutee

b Inconveacutenients

Les moteurs ne fonctionnent correctement que sous 24v Les cartes et les moteurs semblent assez gourment Les cartes nantis de gros radiateurs sont relativement encombrantes Les tachymegravetres monteacutes sur les moteurs ne donnent pas une indication de position

mais de vitesse (qui plus est en analogique)

Nous avons preacutefeacutereacute refaire la partie commande car celle de 1996 souffrait de quelques deacutefauts (cf rapport 1996)

La conversion numeacuterique analogique

Pour reacutealiser la conversion numeacuterique analogique nous avons choisit un pont agrave reacutesistance R-2R

Nous pouvons consideacuterer que chaque bit est relieacute agrave un geacuteneacuterateur ideacuteal de tension (qui deacutelivre 0v ou 5v) Par conseacutequent la reacutesistance eacutequivalente quelque soit lrsquoeacutetat des bits et quelques soit le nombre de bits vue entre la sortie et la masse sera eacutegal agrave R

La tension Vs en fonction de lrsquoeacutetat des bits sera

Ce type de CAN eacutetant tregraves classique nous nrsquoindiquerons pas les deacutemonstrations toutefois vous pourrez les trouver tregraves facilement sur Internet ou sur le Cd-rom drsquoannexes joint au dossier

Le montage de Thevenin eacutequivalent est donc

Nous avons jugeacute qursquoune discreacutetisation sur 8 bits eacutetait un peu superflu crsquoest pourquoi nous nous contenterons de 4 bits (ce qui repreacutesentent quand mecircme 16 niveaux de vitesse)

bull Lrsquoadaptation du niveau de tension

Nous avons agrave la sortie du CAN une tension qui srsquoeacutetend de 0 agrave 5v or la commande des cartes Escap ce fait entre -5v et +5v

On peut voir cette adaptation comme lrsquoajout drsquoun offset de -25v et une amplification de gain 2

Voici le montage reacutealisant cette conversion

M1 est un montage suiveur qui lsquorecopiersquo la tension aux bornes de P1 mais sous une impeacutedance constante et eacutegale agrave 4R En 1996 lrsquoeacutequipe avait brancheacute P1 directement sur M3 mais cela a pour inconveacutenient de faire varier agrave la fois lrsquooffset et la penteLe potentiomegravetre P1 permet drsquoajuster lrsquooffset (permet par conseacutequent de reacutegler lrsquoarrecirct complet de moteur) (La valeur theacuteorique de lrsquooffset est 5V (cf formule en M3))

M2 est aussi un montage suiveur Le potentiomegravetre P2 permet drsquoajuster la pente (qui doit avoir un coefficient directeur de 2) Comme M2 est connecteacute au CAN dont la reacutesistance interne est de R P2 doit ecirctre a peut precirct eacutegal agrave R de la sorte la branche aura une reacutesistance eacutequivalente de 2R

M3 Sommateur (Vs = - 2 (Ve + Voffset))

Qursquoelle valeur choisir pour R

Theacuteoriquement on peut choisir nrsquoimporte quelle valeur pour R mais en pratique si R est trop petite une intensiteacute importante serait consommeacutee sans raison et si R est trop grande la forte impeacutedance du montage le rendra tregraves sensible aux parasites (secteur moteurshellip)Ce montage a eacuteteacute testeacute et fonctionne correctement pour R=5k les amplificateurs opeacuterationnels utiliseacutes sont des LM324 mais drsquoautres seraient tout agrave fait envisageables (peu de contraintes de vitesse et de tensions de deacutechets)

4 Conclusion

Nous avons preacutefeacutereacute ne pas utiliser les cartes Escap car les moteurs ne renvoient pas une position sous forme drsquoimpulsion mais une vitesse Etant donneacute que nous avions envisageacute un repeacuterage par odomeacutetrie cela compliquait consideacuterablement la tache

Toutefois il faut savoir que cette solution a eacuteteacute testeacutee et fonctionne tregraves bien (bonne preacutecision bonne dynamique) ainsi dans le cas ougrave le repeacuterage ne se fait pas par odomeacutetrie mais des balises exteacuterieures sachez que cette solution est tregraves pratique agrave utiliser En effet pour imposer une vitesse il suffit au microcontrocircleur drsquoappliquer sur un port un mot binaire correspondant agrave la vitesse voulue hellip et crsquoest tout La carte Escap se charge du reste

5 Carte drsquoasservissement numeacuterique laquo artisanale raquo

La carte reacutealiseacutee baseacutee sur un microcontrocircleur PIC 16F877A srsquoest aveacutereacutee fonctionnelle mais les tests drsquoalgorithmes drsquoasservissement nrsquoont pas eacuteteacute effectueacutesEn effet lrsquoutilisation de cette solution neacutecessite un microcontrocircleur deacutedieacute agrave lrsquoasservissement capable de communiquer via un protocole agrave deacutefinir avec la laquo carte megravere raquo (centralisant les retours des autres capteurs du robot et agissant sur les diffeacuterents actionneurs en fonction de la strateacutegie)Or afin de limiter le nombre de microcontrocircleurs sur le robot et du fait que lrsquoon dispose drsquoun budget suffisant nous avons deacutecideacute drsquoessayer drsquoutiliser des composants speacuteciaux reacutealisant lrsquoasservissement

Le systegraveme se deacutecompose en

- Un microcontrocircleur pour appliquer la PWM asservir et commander- Une carte de puissance pour chaque moteur baseacutee sur un LMD18200- Une carte compteur drsquoimpulsions pour les codeurs

Afin de favoriser lrsquointeractiviteacute et les reacuteglages jrsquoai ajouteacute une carte afficheur LCD avec 6 boutons sur la carte microcontrocircleur

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 19: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

4 Les roues

Comme vu lors de la veille technologique les chenilles ont quasiment disparu de la compeacutetition Ceci est ducirc au fait que cette technologie est difficile agrave mettre en œuvre et que les regraveglements proposent des aires de jeux totalement planes

Or cette anneacutee un fosseacute fait son apparition dans le regraveglement Ce fosseacute de 36 mm de profondeur vient seacuteparer deux aires de jeu Une neacutecessiteacute de traverser le fosseacute apparaicirct donc pour aller renverser les quilles de lrsquoadversaire

Deux solutions sont alors possibles bull Traverser sur le pont aleacuteatoirebull Traverser le fosseacute

Si nous choisissons de traverser par le pont lrsquoideacutee de garder notre systegraveme de roues est correcte par contre un systegraveme agrave chenille permettrait de passer par le fosseacute

Apregraves reacuteflexion de lrsquoeacutequipe PR et des membres de la Coupe E=M6 la solution de traverser par le pont est retenue Ce qui nous a conduit tout droit vers la solution agrave roues

Les roues utiliseacutees sont des roues de roller de diamegravetre 80mm et drsquoune largeur de 22mm Ces roues sont relieacutees agrave lrsquoarbre drsquoun renvoi drsquoangle par lrsquointermeacutediaire drsquoun accouplement en aluminium

5 La base

Pour la base du robot il nous a parut indispensable de dimensionner la plaque de fond en eacutepaisseur De plus afin de maintenir la solution de modulariteacute de lrsquoensemble moteurs ndash roues nous avons deacutecideacute de fixer les deux supports moteurs sur un platine qui sera elle-mecircme fixeacutee agrave la plaque de fond du robot

Premiegraverement nous avons effectueacute un dimensionnement succinct de la platine

a Reacuteaction drsquoappui

0=sum Fx OK

0=sum Fy qLRbRaorRbRaqL210 =+=++minus

qLRa21=

AB = 027 m = L

P = mg P = 15 x 10 = 150 N

Q = 150 N270 mm soit q = 555 Nm

Bille folle

Accouplement

Bloc moteur

Renvoi drsquoangle

Platine

Base du robot

Motoreacuteducteur

Roue

b Moment de flexion

0 =sum= cMMf

02

sup2 =minus+ RaxqxMf

sup221

21 qxqLxMf minus=

c Flegraveche

)( xMfEIY =

sup221

21 qxqLxEIY minus=

161sup2

41 3 CqxqLxEIY +minus=

21241

121 43 CxCqxqLxEIY ++minus=

d Conditions aux limites

Y (x=0) = 0 C2 = 0

Y (x=L) = 0 012412

44

=+minus LCqLqL

241

4qLLC =

241

3qLC =

On obtient donc

xqLqxqLxEIY 343

241

241

121 +minus=

De mecircme

+minus=

242412

343 xLxLxEIqY

On sait que bull E = 210 000 10^6bull Y = 1 10^-3 mbull Q = 555 Nmbull L = 027 m

bull12

3bhI = b = 006 m

+

minus

=24

22416

128

343 LL

LLL

EYqI

36

4

0010102100000601052155512timestimes

timestimes=minus

h

Et enfin on trouve h lrsquoeacutepaisseur de la platine h= 43 mm

Apregraves reacuteflexion nous nous sommes rendu compte que ce calcul nrsquoeacutetait pas rigoureux car nous avons consideacutereacute la theacuteorie des poutres or dans notre cas nous ne pouvons satisfaire cette theacuteorie (Longueur de la section = 10 x la largeur de la section)

Il nous faut donc utiliser un modegravele plus preacutecis crsquoest pourquoi nous avons deacutecideacute de faire un calcul par eacuteleacutements finis sous Ideacuteas Ainsi nous trouvons une eacutepaisseur h = 32 mm

Il nous faut donc une platine de plus de 3 mm Etant donneacute que la platine sera solidairement fixeacutee agrave la base du robot nous avons deacutecideacute de prendre une eacutepaisseur de platine de 2 mm et une eacutepaisseur de base de robot de 2 mm Nous obtenons donc une eacutepaisseur totale de 4 mm Ainsi nous devrions avoir sous une charge de 15 kg moins drsquoun millimegravetre de flexion de la base du robot

6 Reacutesultats

Assemblage en position horizontale

Vue eacuteclateacutee en position verticale

Photo de lrsquoassemblage roues ndash blocs moteurs ndash moteurs ndash platine

Partie C Lrsquoeacutelectronique20 Les batteries

Afin de pouvoir choisir les batteries approprieacutees agrave notre application nous devons dans un premier temps faire une estimation de la consommation drsquoeacutenergie totale avec les pointes de courant envisageacutees dans notre robotIl est agrave noter que nous ne connaissons pas encore en deacutetail tous les eacuteleacutements annexes qui seront implanteacutes dans le robot comme par exemple les capteurs et actionneurs diverses qui seront choisis en fonction des objectifs technologiques atteints ou non de lrsquoassociation et de la strateacutegie finaleDans le but de pouvoir utiliser agrave nouveau dans lrsquoavenir notre base roulante nous avons choisi de surestimer les besoins en eacutenergie de sorte agrave ne pas ecirctre pris au deacutepourvu

La consommation pourrait se deacutecomposer ainsi - 2 moteurs de 24V sous 21A soit 1008 Watts pendant 100 du temps- 3 actionneurs de 21 Watts chacun soit 63 Watts pendant 50 du temps- 3A pour lrsquoeacutelectronique sous 5V soit 15 Watts pendant 100 du temps (Asservissement carte de commandes capteurs)

Ce qui nous fait au total une consommation maximale ~180 WattsLa consommation permanente devrait ecirctre ~147 Watts permanents il faut donc que les batteries puissent deacutebiter un courant de ~6 A sous 24 V durant le fonctionnement du robot

Apregraves une longue recherche on a pu reacutealiser le tableau comparatif des batteries suivant

typeDensiteacute

deacutenergie (WhKg)

Densiteacute deacutenergie (WhL)

auto-deacutecharge (mois)

voltage dune cellule (V)

temps de charge rapide

plomb 35 111 5 agrave 10 2 8h agrave 15h

NiCd (Nickel Cadnium) 50 94 10 agrave 20 12 1h30min

NiMH (Nickel Metal Hydride) 80 135 20 agrave 30 13 2h agrave 4h

Lithium Ion 100 196 5 agrave 10 36 2h agrave 4h

Lithium polymer 150 200 5 agrave 10 36 2h agrave 4h

AlKaline rechargeable 80 15 2h agrave 3h

type

cycle de charge-deacutecharge avant

que capaciteacute passe de 100 agrave

80

Courant max Courant max pic effet meacutemoire estimation

(euroWh) prixcycles

plomb 200 agrave 300 02C 05C M 0895 0003

NiCd (Nickel Cadnium) 1500 1C 20C H 416 0003

NiMH (Nickel Metal Hydride) 300 agrave 500 05C 5C L 2 0004

Lithium Ion 500 agrave 1000 1C 2C L 8 0008

Lithium polymer 300 agrave 500 1C 2C agrave 5C L 32 0006

AlKaline rechargeable 50 02C 05C H 178 0036

Effet meacutemoire L (Low) M (Medium) H (High)Courant max C signifie capaciteacute par exemple une batterie qui peut deacutelivrer un courant max de 1C de 4Ah pourra donc deacutelivrer 4A au maximum sans risque de deacuteteacuterioration

Nous nous sommes inteacuteresseacutes au courant maximum et au temps de charge rapide pour notre choix de batteriesLe type de batterie qui semble le plus approprieacute pour nous est le type Nickel-Cadnium parfaitement adapteacute au pic drsquoappel de courant que provoquent des moteurs pouvant supporter des charges rapides en 1h30min seulement afin de devoir preacutevoir trop de jeux de batteries diffeacuterents

Les batteries LI-Ion ou LI-Polymer preacutesentent une densiteacute eacutenergeacutetique tregraves inteacuteressante mais leur prix est beaucoup plus eacuteleveacute agrave lrsquoachat et de plus dans notre application roulant sur un sol peu accidenteacute la masse pouvant ecirctre transporteacutee est suffisante pour le type NiCd

Les batteries LI-Ion ou LI-Polymer sont plus adapteacutees agrave lrsquoaeacuteromodeacutelisme ou au petit appareil eacutelectroniqueQuant aux batteries au plomb qui sont vraiment bon marcheacute le courant maximum supporteacute est trop faible est supposerait drsquoavoir une forte capaciteacute

Nous voulons avoir une autonomie de 30 minutes il nous faut donc une eacutenergie de 735 WhOr sous 24 V les batteries doivent avoir une capaciteacute de ~3 AhComme les batteries NiCd peuvent deacutebiter un courant maximum de 1C (une fois leur capaciteacute) nous devons donc prendre des batteries de 6Ah sous 24 V ce qui nous donnera une autonomie de 1 heure

Il faudra donc soit acheter un bloc accumulateur NiCd de 24 V 6 Ah srsquoil existe dans le commerce soit le reacutealiser nous mecircme en assemblant diffeacuterents eacuteleacutements

Rappelons que lrsquoassociation en seacuterie permet drsquoadditionner les tensions des eacuteleacutements associeacutes et que lrsquoassociation en parallegravele permet drsquoadditionner les courants deacutebiteacutes

Par exemple des eacuteleacutements de 12 V chacun pour 3 Ah srsquoassocieraient ainsi

Soit deux seacuteries de 20 eacuteleacutements eacutequivalentes agrave 24 V et faisant une capaciteacute de 3 Ah chacune

Il est possible de reacutepartir les accumulateurs en diffeacuterents paquets pour faciliter le rangement dans le robot ou reacutepartir la masse ou eacuteventuellement trouver des packs dans le commerce

Dans le cas de lrsquoUV PR le choix des batteries reste pour le moment sur les NiCd mais pour les essais pratiques on utilisera des batteries au plomb que lrsquoon possegravede deacutejagrave drsquoautant plus que les essais sont reacutealiseacutes avec les moteurs de propulsion et lrsquoasservissement seul ce qui

neacutecessite un deacutebit de courant de 24105 = 4375 A sur 2 batteries soit asymp2187 A

Comme les batteries au plomb peuvent deacutebiter 02C il nous en faudrait des de asymp 109 Ah

Or les essais de la base roulante ne seront que de courtes dureacutees et lrsquoon se contentera donc drsquoutiliser des batteries de 6 Ah pour des raisons de volume mecircme si elles ne sont pas vraiment bien dimensionneacutees

21 La commande des moteurs

Dans un premier temps nous verrons un bref reacutecapitulatif des cartes et modules drsquoasservissement du commerce

Pour la commande les moteurs plusieurs solutions ont eacuteteacute envisageacutees - Un asservissement lsquotout faitrsquo analogique modules laquo Escap raquo- Une solution lsquoartisanalersquo carte avec asservissement numeacuterique- Un asservissement lsquotout faitrsquo numeacuterique circuits laquo LM629 raquo

a Comparatifs des modules drsquoasservissement et calcul des correcteurs

Veille technologique sur les systegravemes drsquoasservissement utiliseacutes par les diffeacuterentes eacutecoles de la coupe E= M6

Le but de cette partie est drsquoeacutetudier les principales techniques drsquoasservissement utiliseacutees par les eacutecoles de la Coupe E=M6 Ce document est loin drsquoecirctre exhaustif et servira de base agrave compleacuteter et actualiser pour les semestres et eacutequipes prochaines

Apregraves une eacutetude sur plus drsquoune trentaine drsquoeacutecoles il ressort trois formes drsquoasservissement la plus utiliseacutee agrave 85 est du type PID en majoriteacute reacuteduit au PI ensuite viennent les microcontrocircleurs PIC associeacutes au PID et les modules AVR nous allons par la suite deacutetailler ces trois solutions Il existe eacutegalement des systegravemes de controcircle dits agrave retour drsquoeacutetat jamais utiliseacutes jusqursquoagrave preacutesent pour la Coupe crsquoest pourquoi nous ne deacutevelopperons pas son approche

3 Systegraveme PID

httpwwwancrorgfichtechactionpidindexhtm

a Principe

Pour pouvoir tester un asservissement il faut dabord reacutealiser une plate-forme de deacuteveloppement le plus geacuteneacuteralement du type suivant Mais pour commencer un brin de theacuteorie illustreacute par des exemples Le scheacutema de principe est repreacutesenteacute ci-dessous

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

Nous avons bien un scheacutema en boucle fermeacutee puisque la sortie du systegraveme est reacuteinjecteacutee dans lentreacutee Les trois blocs bleus correspondent chacun agrave une fonctionnaliteacute Ki est le coefficient inteacutegral Kp le coefficient proportionnel et Kd le coefficient deacuteriveacute Chacun de ces coefficients a une fonctionnaliteacute bien preacutecise Commenccedilons par le plus simple le proportionnel

b Asservissement P

Lasservissement proportionnel est essentiel au fonctionnement du PID Il permet essentiellement de donner de la puissance au moteur Voici quelques reacutesultats dexpeacuterimentations avec Ki=0 et Kd=0

La courbe noire repreacutesente la consigne que lon deacutesire atteindre (Ud) cest un eacutechelon de valeur 32 La courbe bleue repreacutesente la vitesse reacuteelle du systegraveme (Y) Comme vous pouvez le constater plus Kp est grand plus le systegraveme converge vite vers sa valeur finale Mais en contrepartie pour des valeurs de Kp trop grandes le systegraveme oscille Mais lagrave nest pas notre plus gros problegraveme en effet sur ces courbes on voit nettement que la vitesse du moteur natteint jamais la vitesse deacutesireacutee Cest ce que lon appelle lerreur statique elle correspond agrave la diffeacuterence entre la vitesse reacuteelle et la vitesse deacutesireacutee en reacutegime eacutetablie (une fois que le systegraveme sest stabiliseacute) Pour compenser cette erreur statique on rajoute le terme inteacutegral

c Asservissement PI

Le correcteur inteacutegral sert principalement agrave supprimer lerreur statique Lideacutee principale est de charger ou inteacutegrer lerreur depuis le deacutebut et dajouter cette erreur agrave la consigne jusquagrave ce quelle devienne nulle Lorsque cette erreur est nulle le terme inteacutegral se stabilise et il compense parfaitement lerreur entre la consigne et la vitesse reacuteelle Deacutemonstration en image

On voit cette fois-ci que le terme inteacutegral a bien fonctionneacute et que lerreur statique est nulle On constate aussi que plus le gain Ki est grand plus le systegraveme converge vite En revanche plus Ki est grand plus le systegraveme oscille et plus le deacutepassement est grand Sur des asservissements en position le terme deacuteriveacute permet de diminuer le deacutepassement et les oscillations Nous allons voir que dans notre cas nous avons quelques problegravemes

d Asservissement PID ou agrave avance de phase

On a donc rajouteacute le terme deacuteriveacute comme tout bon livre dautomatique le preacuteconise et voici les reacutesultats

Cette fois ci jai choisi de repreacutesenter la tension appliqueacutee au moteur (U) le problegraveme est bien plus flagrant ici Vous voyez que lorsque lon ajoute le terme deacuteriveacute la commande est extrecircmement bruiteacutee En reacutealiteacute on somme agrave la commande la deacuteriveacutee de la vitesse reacuteelle que lon multiplie par un gain Kd La deacuteriveacutee dune vitesse est une acceacuteleacuteration cela signifie que lon amplifie tous les bruits dacceacuteleacuteration et en plus on les multiplient par un gain Kd Donc rajoute du bruit amplifieacute dans la commande Alors pourquoi mettent t-ils ce terme deacuteriveacutee dans les livres Simplement parce que ce bruit est typique des asservissement en vitesse Sur des asservissements en position ce problegraveme est moins freacutequent car la deacuteriveacutee de la position est la vitesse

Ici le problegraveme eacutetait visible parce que nous avons reacutealiseacute toutes ces courbes sur un systegraveme reacuteel Si nous avions simuleacute ces reacutesultats lacceacuteleacuteration naurait pas eacuteteacute bruiteacutee et les courbes auraient eacuteteacute parfaites Pour impleacutementer ce PID sur notre robot il a fallu programmer en numeacuterique une deacuteriveacutee et une inteacutegrale

e PID numeacuterique et reacuteglage

Notre premier problegraveme est de programmer le terme inteacutegral Il existe une meacutethode qui consiste agrave estimer la surface entre deux eacutechantillons mais dans notre cas nous avons des problegravemes dus aux bruits et agrave la freacutequence deacutechantillonnage Alors il faut sommer toutes les erreurs depuis de deacutebut

Notre second problegraveme est de programmer le terme deacuteriveacute La meacutethode ici est de calculer la pente entre deux eacutechantillons de e Theacuteoriquement cela revient agrave faire le calcul suivant

Avec la peacuteriode deacutechantillonnage Pour faire un asservissement numeacuterique il faut impeacuterativement avoir une peacuteriode fixe Pour gagner du temps de calcul geacuteneacuteralement on inteacutegre directement dans le gain Kd

Voici un lalgorithme exemple

Ti = 0 Initialise le terme inteacutegral

for ( i=1 i lt= Nb_cycles i++ )

Init_timers (1) Initialise le timer agrave notre peacuteriode 1 ms

Y = Codeur () Stoque la valeur du codeur dans Y Rst_codeur () Remet le codeur agrave zeacutero Ud = Consigne () Mise agrave jour de la consigne e_old=e Stoque e(t-1) e = Ud - Y Calcul de lerreur Ti = Ti + e Calcul de linteacutegral Calcul du PID U = Kp e Terme proportionnel

+ Ki Ti Terme inteacutegral + Kd ( e - e_old ) Terme deacuteriveacute Moteur (U) On applique la consigne

while ( end_timer() ) On attend la fin de la peacuteriode

Pour le reacuteglage des gains Kp Ki et Kd il existe diffeacuterentes meacutethodes Ici nous lavons fait de maniegravere empirique et le reacutesultats est plutocirct bon Linconveacutenient de ces meacutethodes est quelles demandent un modegravele du systegraveme ce qui est geacuteneacuteralement dur agrave produire Il existe

aussi des composants programmables qui permettent de faire directement lasservissement numeacuterique (HCTL 1100 LM629) Ils sont exactement baseacutes sur la meacutethode preacutesenteacutee ici

Pour ce qui est du reacuteglage des correcteurs lrsquooptimal est drsquoutiliser la meacutethode de lrsquooptimum dissymeacutetrique une fois que lrsquoon agrave reacutealiseacute le modegravele du systegraveme La plus part des eacutecoles ne reacutealisent pas ce modegravele et ce limite donc agrave une correction empirique en reacutealisant des tests ou en utilisant la meacutethode Ziegler-Nichols agrave partir de la reacuteponse agrave un eacutechelon de tension

Par la suite nous rappellerons les meacutethodes de Ziegler-Nichols et de lrsquooptimum dissymeacutetrique

f Les meacutethodes de Ziegler-Nichols

Ces meacutethodes fournissent des reacuteglages pour des correcteurs de type PID (pouvant ne comporter quune action Proportionnelle une action Proportionnelle et une action Inteacutegrale ou les 3 actions simultaneacutement) dont la structure est la suivante

bull MEacuteTHODE DE ZIEGLER NICHOLS TEMPORELLE

Elle est adapteacutee aux systegravemes stables en boucle ouverte qui ont une reacuteponse apeacuteriodique La reacuteponse agrave un eacutechelon unitaire du systegraveme physique doit ecirctre enregistreacutee Diffeacuterentes caracteacuteristiques de la reacuteponse obtenue sont mesureacutees

Le modegravele approcheacute utiliseacutee par Ziegler Nichols comporte une constante de temps et un retard pur ou bien un retard pur et un inteacutegrateur

Si le systegraveme physique comporte un inteacutegrateur les mesures de a et de L demeurent disponibles sur le deacutebut de la reacuteponse

Les reacuteglages suggeacutereacutes par la meacutethode temporelle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 1a - -correcteur PI 09a 3L -

correcteur PID 12a 2L L2Concernant le raffinement des reacuteglages augmenter Kp ou diminuer Ti augment les

oscillations de la sortie

bull MEacuteTHODE DE ZIEGLER NICHOLS FREacuteQUENTIELLE

Cette meacutethode convient particuliegraverement bien aux systegravemes instables en boucle ouverte pour lesquels la meacutethode temporelle nest pas envisageable Lexpeacuterimentation se fait sur le systegraveme boucleacute avec un simple gain proportionnel qui doit ecirctre stable Le principe est de modifier la valeur du gain par essai-erreur jusquagrave atteindre la limite de stabiliteacute (pheacutenomegravene de pompage) Il reste agrave relever le gain limite K0 obtenu et agrave mesurer la peacuteriode T0 des oscillations de la reacuteponse obtenue

Les reacuteglages suggeacutereacutes par la meacutethode freacutequentielle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 05 K0 - -correcteur PI 045 K0 08 T0 -

correcteur PID 06 K0 05 T0 0125 T0

A la page Internet suivante vous trouverez un simulateur de cette meacutethode

httpwww-hadocensieginpgfrhadocateliersreglageEmpCorrReglEmpCorrDroithtml

g Meacutethode de lrsquooptimum dyssimeacutetique (voir poly MC06 Chap 5 et 8)

Cette meacutethode srsquoapplique une fois le modegravele reacutealiseacute et mis sous la forme drsquoun second ordre

et on obtient le correcteur PI

pour une surtension deacutesireacutee QdB

Q = 10^(QdB20)λ= radic(Qsup2(Qsup2-1))Δφ = arcos (1 λ)α= ((1+sin(Δφ))cos(Δφ))sup2ωN= ωQαω0= ωQradicαKP= ω0 λ KQ

4 Les microcontrocircleurs

a Avant propos

Cette fiche se veut ecirctre sous la forme dun projet Un projet non termineacute ougrave chacun peut apporter sa contribution (ameacuteliorations adaptations corrections etc)De ce fait ces pages sont ameneacutees agrave eacutevoluer et vous-mecircme pourrez participer agrave leur eacutevolution

Pourquoi avoir choisit un tel mode de travail Tout simplement parce que le sujet est vaste et que des variations sont possibles suivant lutilisation quen feront les diffeacuterentes personnes

Le but de ce projet est de reacutealiser une double asservissement de vitesse (type PID) de deux moteurs sur un seul PIC (type 16F877) Lutiliteacute majeure eacutetant de faire rouler un robot bien droit et agrave la bonne vitesse A quoi ccedila sert plus preacuteciseacutement

Avec un seul PIC ce projet permet aux roboticiens amateurs et chevronneacutes de reacutealiser facilement leur asservissement de vitesse de moteurs agrave courant continu (en geacuteneacuteral les moteurs de propulsions de leur robot mais ccedila peut ecirctre bien sucircr dautres moteurs) La commande de lasservissement pourra se faire agrave terme en liaison seacuterie (deacutejagrave fait) I2C ou par bus ISA

b Avantages

Il existe bien sucircr dautres systegravemes qui gegraverent un asservissement de vitesses Des systegravemes professionnels existent comme les LM629 Ils ont linconveacutenient decirctre cher (et ce pour un seul moteur) et relativement complexes

Pourquoi chercher un fusil pour chasser des moustiques Le double asservissement sur PIC vous coucircte le prix dun PIC soit environ 15Euro pour un 16F877 actuellement et ce pour 2 moteurs Ce double asservissement se veut relativement simple De plus vous pouvez en modifier le programme et ladapter agrave vos besoins

c Inconveacutenients

Les personnes qui auront les moyens preacutefeacutererons opter pour un systegraveme professionnel certainement pour des raisons de fiabiliteacute mais cest agrave leurs risques et peacuterils -)La puissance du PIC eacutetant limiteacutee il ne peut pas reacutealiser des PID trop rapides ou trop complexes Il y a en particulier une limitation sur le nombre dimpulsions par seconde quil est capable de geacuterer

Le langage utiliseacute eacutetant le C il faut une licence du logiciel pour pouvoir modifier et recompiler le code source c Mais le projet se veut geacuteneacuterique Une version donneacutee pourra ecirctre utiliseacute sans recompilation en respectant quelques contraintes

d Asservissement

En fait on pourrait imaginer quil suffirait denvoyer au moteur une puissance constante pour quil tourne tout le temps agrave la mecircme vitesse Ce nest pas vrai du tout Tout dabord 2 moteurs dune mecircme seacuterie nauront pas forceacutement le mecircme comportement Ensuite parce que les niveaux de tension ou dautre diffeacuterences eacutelectriques peuvent jouer Enfin parce que des influences exteacuterieures (obstacles frein meacutecanique du robot) peuvent jouer

Du coup il est tregraves difficile de faire aller un moteur agrave la vitesse voulue Parfois ce nest pas gecircnant mais ccedila peut lecirctre Un exemple classique est le robot avec 2 roues motrices type char une configuration qui est tregraves courante Mais pour que ce robot aille droit il faut que les 2 moteurs aillent exactement agrave la mecircme vitesse

La solution est de faire un asservissement Cest a dire moduler dynamiquement la puissance envoyeacute aux moteurs suivant leur vitesse mesureacutee afin dadapter celle-ci agrave ce qui est deacutesireacuteeCela implique un eacuteleacutement tregraves important pour asservir il faut un capteur de vitesse du moteur En geacuteneacuteral il sagit dun compte-tour qui enverra N impulsions (ou pas) par tour de moteur Ensuite un programme va calculer en fonction de la vitesse mesureacutee du moteur la puissance agrave utiliser

Les asservissements sont constamment en train de chercher leacutequilibre Il faut bien comprendre quils mettent un certain temps agrave latteindre et ce dernier peut aussi ecirctre instable si lasservissement est mal reacutegleacute

Lasservissement quon va utiliser ici est un classique PIDou plus preacuteciseacutement un PI car pour des raisons de vitesses de traitement la composante deacuteriveacutee est laisseacutee de coteacute (mais rien de difficile agrave rajouter)

Le PID ou Proportionnel Inteacutegrale Deacuteriveacute est une meacutethode de calcul dasservissement

Soit Kp Ki et Kd les coefficients proportionnels inteacutegrale et deacuteriveacuteSoit e lerreur Vitesse mesureacutee moins vitesse demandeacuteeSoit Ti le terme inteacutegral dabord initialiseacute agrave 0

Consigne a appliquer (PWM) = Kp e + (1Ki) (Ti += e) + Kd (e - e(t-1))

On pourrait dire des pages et des pages sur le PID et ce nest pas mon but ici Merci de vous reporter au lien ci-dessous

Pour plus de deacutetails sur le PID la page de lANCR httpwwwancrorgfichtechactionpidindexhtmChez les Fribottes la Simulation de Jean-Claude httpwwwwikifreefrWiKiFriindexphpSimulateur20de20PID

e Le pic

Le PIC est un petit microcontrocircleur assez bon marche et simple a programmer comme a utiliser

La aussi je vais pas rentrer dans les deacutetails vous pouvez vous reporter agrave la bdtech du site Fribotte et en particulier aux cours de Bigonoff

Le PIC est ici programmeacute en C voir la page Fribotte ici Lutilisation du langage C permet dalleacuteger consideacuterablement le deacuteveloppement dune application compliqueacutee

2 Module AVR

httpwwwenseirbfr~matzfravrphp

Tregraves peu de renseignement sur ce module sinon ces informations drsquoun eacutetudiant de lrsquoEnseirb

Depuis plusieurs anneacutees je participe agrave la coupe de robotique E=M6 dont lobjectif pour chaque eacutequipe est de fabriquer un robot autonome devant se conformer agrave un regraveglement Pour plus dinfos vous pouvez vous rendre sur le site de mon eacutequipe Microb Technology ou bien sur le site de Planegravete Sciences lorganisme beacuteneacutevole qui organise cette compeacutetition

Jai deacutecouvert en 2001 les microcontrocircleurs Atmel AVR auxquels je me suis beaucoup attacheacute dune part parce quils sont assez performants pour des microcontrocircleurs 8 bits mais aussi et surtout car le fameux compilateur libre GCC est capable de compiler du code C pour ces petites becirctes Il existe de surcroicirct plusieurs outils libres permettant de les programmer de les simuler etc

Le but de ce projet est donc de deacutevelopper des modules servant dinterface geacuteneacuterique avec le hardware du microcontrocircleur quel que soit la version (par exemple les UART inclus dans les AVR AtMega sont diffeacuterents de ceux preacutesents dans les petits AVR) et de deacutevelopper des modules utiles pour certaines utilisations usuelles et pas seulement pour la coupe E=M6 (codage de hamming asservissement chiffrement etc)

Vous pouvez contacter leacutequipe de deacuteveloppement agrave avr-devdroids-corporg Pour le moment aucune release na eacuteteacute faite mais le travail est deacutejagrave bien avanceacute Chaque soir un screenshot du CVS est reacutealiseacute Il peut ne pas compiler mais normalement ccedila devrait fonctionner Voici le lien

3 Modules drsquoasservissement analogique laquo Escap raquo

Nous avons essayeacute de reacutecupeacuterer les cartes de commande Escap pour moteurs Escap qui avaient eacuteteacute utiliseacutees en 96 et 98 avec succegraves

Nous les avons monteacutes sur une base roulante qui pesait en tout 74 kgVoici grosso-modo leurs avantages et leurs inconveacutenients (pour les notices techniques voir le rapport 96 ou 98)

a Avantages

Cette carte inclut directement un asservissement avec correcteur PI la commande de puissance les ponts en H

Elle est tregraves facile agrave utiliser Elle est speacutecialement conccedilue pour les moteurs Escap que nous avons donc

parfaitement adapteacutee

b Inconveacutenients

Les moteurs ne fonctionnent correctement que sous 24v Les cartes et les moteurs semblent assez gourment Les cartes nantis de gros radiateurs sont relativement encombrantes Les tachymegravetres monteacutes sur les moteurs ne donnent pas une indication de position

mais de vitesse (qui plus est en analogique)

Nous avons preacutefeacutereacute refaire la partie commande car celle de 1996 souffrait de quelques deacutefauts (cf rapport 1996)

La conversion numeacuterique analogique

Pour reacutealiser la conversion numeacuterique analogique nous avons choisit un pont agrave reacutesistance R-2R

Nous pouvons consideacuterer que chaque bit est relieacute agrave un geacuteneacuterateur ideacuteal de tension (qui deacutelivre 0v ou 5v) Par conseacutequent la reacutesistance eacutequivalente quelque soit lrsquoeacutetat des bits et quelques soit le nombre de bits vue entre la sortie et la masse sera eacutegal agrave R

La tension Vs en fonction de lrsquoeacutetat des bits sera

Ce type de CAN eacutetant tregraves classique nous nrsquoindiquerons pas les deacutemonstrations toutefois vous pourrez les trouver tregraves facilement sur Internet ou sur le Cd-rom drsquoannexes joint au dossier

Le montage de Thevenin eacutequivalent est donc

Nous avons jugeacute qursquoune discreacutetisation sur 8 bits eacutetait un peu superflu crsquoest pourquoi nous nous contenterons de 4 bits (ce qui repreacutesentent quand mecircme 16 niveaux de vitesse)

bull Lrsquoadaptation du niveau de tension

Nous avons agrave la sortie du CAN une tension qui srsquoeacutetend de 0 agrave 5v or la commande des cartes Escap ce fait entre -5v et +5v

On peut voir cette adaptation comme lrsquoajout drsquoun offset de -25v et une amplification de gain 2

Voici le montage reacutealisant cette conversion

M1 est un montage suiveur qui lsquorecopiersquo la tension aux bornes de P1 mais sous une impeacutedance constante et eacutegale agrave 4R En 1996 lrsquoeacutequipe avait brancheacute P1 directement sur M3 mais cela a pour inconveacutenient de faire varier agrave la fois lrsquooffset et la penteLe potentiomegravetre P1 permet drsquoajuster lrsquooffset (permet par conseacutequent de reacutegler lrsquoarrecirct complet de moteur) (La valeur theacuteorique de lrsquooffset est 5V (cf formule en M3))

M2 est aussi un montage suiveur Le potentiomegravetre P2 permet drsquoajuster la pente (qui doit avoir un coefficient directeur de 2) Comme M2 est connecteacute au CAN dont la reacutesistance interne est de R P2 doit ecirctre a peut precirct eacutegal agrave R de la sorte la branche aura une reacutesistance eacutequivalente de 2R

M3 Sommateur (Vs = - 2 (Ve + Voffset))

Qursquoelle valeur choisir pour R

Theacuteoriquement on peut choisir nrsquoimporte quelle valeur pour R mais en pratique si R est trop petite une intensiteacute importante serait consommeacutee sans raison et si R est trop grande la forte impeacutedance du montage le rendra tregraves sensible aux parasites (secteur moteurshellip)Ce montage a eacuteteacute testeacute et fonctionne correctement pour R=5k les amplificateurs opeacuterationnels utiliseacutes sont des LM324 mais drsquoautres seraient tout agrave fait envisageables (peu de contraintes de vitesse et de tensions de deacutechets)

4 Conclusion

Nous avons preacutefeacutereacute ne pas utiliser les cartes Escap car les moteurs ne renvoient pas une position sous forme drsquoimpulsion mais une vitesse Etant donneacute que nous avions envisageacute un repeacuterage par odomeacutetrie cela compliquait consideacuterablement la tache

Toutefois il faut savoir que cette solution a eacuteteacute testeacutee et fonctionne tregraves bien (bonne preacutecision bonne dynamique) ainsi dans le cas ougrave le repeacuterage ne se fait pas par odomeacutetrie mais des balises exteacuterieures sachez que cette solution est tregraves pratique agrave utiliser En effet pour imposer une vitesse il suffit au microcontrocircleur drsquoappliquer sur un port un mot binaire correspondant agrave la vitesse voulue hellip et crsquoest tout La carte Escap se charge du reste

5 Carte drsquoasservissement numeacuterique laquo artisanale raquo

La carte reacutealiseacutee baseacutee sur un microcontrocircleur PIC 16F877A srsquoest aveacutereacutee fonctionnelle mais les tests drsquoalgorithmes drsquoasservissement nrsquoont pas eacuteteacute effectueacutesEn effet lrsquoutilisation de cette solution neacutecessite un microcontrocircleur deacutedieacute agrave lrsquoasservissement capable de communiquer via un protocole agrave deacutefinir avec la laquo carte megravere raquo (centralisant les retours des autres capteurs du robot et agissant sur les diffeacuterents actionneurs en fonction de la strateacutegie)Or afin de limiter le nombre de microcontrocircleurs sur le robot et du fait que lrsquoon dispose drsquoun budget suffisant nous avons deacutecideacute drsquoessayer drsquoutiliser des composants speacuteciaux reacutealisant lrsquoasservissement

Le systegraveme se deacutecompose en

- Un microcontrocircleur pour appliquer la PWM asservir et commander- Une carte de puissance pour chaque moteur baseacutee sur un LMD18200- Une carte compteur drsquoimpulsions pour les codeurs

Afin de favoriser lrsquointeractiviteacute et les reacuteglages jrsquoai ajouteacute une carte afficheur LCD avec 6 boutons sur la carte microcontrocircleur

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 20: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

5 La base

Pour la base du robot il nous a parut indispensable de dimensionner la plaque de fond en eacutepaisseur De plus afin de maintenir la solution de modulariteacute de lrsquoensemble moteurs ndash roues nous avons deacutecideacute de fixer les deux supports moteurs sur un platine qui sera elle-mecircme fixeacutee agrave la plaque de fond du robot

Premiegraverement nous avons effectueacute un dimensionnement succinct de la platine

a Reacuteaction drsquoappui

0=sum Fx OK

0=sum Fy qLRbRaorRbRaqL210 =+=++minus

qLRa21=

AB = 027 m = L

P = mg P = 15 x 10 = 150 N

Q = 150 N270 mm soit q = 555 Nm

Bille folle

Accouplement

Bloc moteur

Renvoi drsquoangle

Platine

Base du robot

Motoreacuteducteur

Roue

b Moment de flexion

0 =sum= cMMf

02

sup2 =minus+ RaxqxMf

sup221

21 qxqLxMf minus=

c Flegraveche

)( xMfEIY =

sup221

21 qxqLxEIY minus=

161sup2

41 3 CqxqLxEIY +minus=

21241

121 43 CxCqxqLxEIY ++minus=

d Conditions aux limites

Y (x=0) = 0 C2 = 0

Y (x=L) = 0 012412

44

=+minus LCqLqL

241

4qLLC =

241

3qLC =

On obtient donc

xqLqxqLxEIY 343

241

241

121 +minus=

De mecircme

+minus=

242412

343 xLxLxEIqY

On sait que bull E = 210 000 10^6bull Y = 1 10^-3 mbull Q = 555 Nmbull L = 027 m

bull12

3bhI = b = 006 m

+

minus

=24

22416

128

343 LL

LLL

EYqI

36

4

0010102100000601052155512timestimes

timestimes=minus

h

Et enfin on trouve h lrsquoeacutepaisseur de la platine h= 43 mm

Apregraves reacuteflexion nous nous sommes rendu compte que ce calcul nrsquoeacutetait pas rigoureux car nous avons consideacutereacute la theacuteorie des poutres or dans notre cas nous ne pouvons satisfaire cette theacuteorie (Longueur de la section = 10 x la largeur de la section)

Il nous faut donc utiliser un modegravele plus preacutecis crsquoest pourquoi nous avons deacutecideacute de faire un calcul par eacuteleacutements finis sous Ideacuteas Ainsi nous trouvons une eacutepaisseur h = 32 mm

Il nous faut donc une platine de plus de 3 mm Etant donneacute que la platine sera solidairement fixeacutee agrave la base du robot nous avons deacutecideacute de prendre une eacutepaisseur de platine de 2 mm et une eacutepaisseur de base de robot de 2 mm Nous obtenons donc une eacutepaisseur totale de 4 mm Ainsi nous devrions avoir sous une charge de 15 kg moins drsquoun millimegravetre de flexion de la base du robot

6 Reacutesultats

Assemblage en position horizontale

Vue eacuteclateacutee en position verticale

Photo de lrsquoassemblage roues ndash blocs moteurs ndash moteurs ndash platine

Partie C Lrsquoeacutelectronique20 Les batteries

Afin de pouvoir choisir les batteries approprieacutees agrave notre application nous devons dans un premier temps faire une estimation de la consommation drsquoeacutenergie totale avec les pointes de courant envisageacutees dans notre robotIl est agrave noter que nous ne connaissons pas encore en deacutetail tous les eacuteleacutements annexes qui seront implanteacutes dans le robot comme par exemple les capteurs et actionneurs diverses qui seront choisis en fonction des objectifs technologiques atteints ou non de lrsquoassociation et de la strateacutegie finaleDans le but de pouvoir utiliser agrave nouveau dans lrsquoavenir notre base roulante nous avons choisi de surestimer les besoins en eacutenergie de sorte agrave ne pas ecirctre pris au deacutepourvu

La consommation pourrait se deacutecomposer ainsi - 2 moteurs de 24V sous 21A soit 1008 Watts pendant 100 du temps- 3 actionneurs de 21 Watts chacun soit 63 Watts pendant 50 du temps- 3A pour lrsquoeacutelectronique sous 5V soit 15 Watts pendant 100 du temps (Asservissement carte de commandes capteurs)

Ce qui nous fait au total une consommation maximale ~180 WattsLa consommation permanente devrait ecirctre ~147 Watts permanents il faut donc que les batteries puissent deacutebiter un courant de ~6 A sous 24 V durant le fonctionnement du robot

Apregraves une longue recherche on a pu reacutealiser le tableau comparatif des batteries suivant

typeDensiteacute

deacutenergie (WhKg)

Densiteacute deacutenergie (WhL)

auto-deacutecharge (mois)

voltage dune cellule (V)

temps de charge rapide

plomb 35 111 5 agrave 10 2 8h agrave 15h

NiCd (Nickel Cadnium) 50 94 10 agrave 20 12 1h30min

NiMH (Nickel Metal Hydride) 80 135 20 agrave 30 13 2h agrave 4h

Lithium Ion 100 196 5 agrave 10 36 2h agrave 4h

Lithium polymer 150 200 5 agrave 10 36 2h agrave 4h

AlKaline rechargeable 80 15 2h agrave 3h

type

cycle de charge-deacutecharge avant

que capaciteacute passe de 100 agrave

80

Courant max Courant max pic effet meacutemoire estimation

(euroWh) prixcycles

plomb 200 agrave 300 02C 05C M 0895 0003

NiCd (Nickel Cadnium) 1500 1C 20C H 416 0003

NiMH (Nickel Metal Hydride) 300 agrave 500 05C 5C L 2 0004

Lithium Ion 500 agrave 1000 1C 2C L 8 0008

Lithium polymer 300 agrave 500 1C 2C agrave 5C L 32 0006

AlKaline rechargeable 50 02C 05C H 178 0036

Effet meacutemoire L (Low) M (Medium) H (High)Courant max C signifie capaciteacute par exemple une batterie qui peut deacutelivrer un courant max de 1C de 4Ah pourra donc deacutelivrer 4A au maximum sans risque de deacuteteacuterioration

Nous nous sommes inteacuteresseacutes au courant maximum et au temps de charge rapide pour notre choix de batteriesLe type de batterie qui semble le plus approprieacute pour nous est le type Nickel-Cadnium parfaitement adapteacute au pic drsquoappel de courant que provoquent des moteurs pouvant supporter des charges rapides en 1h30min seulement afin de devoir preacutevoir trop de jeux de batteries diffeacuterents

Les batteries LI-Ion ou LI-Polymer preacutesentent une densiteacute eacutenergeacutetique tregraves inteacuteressante mais leur prix est beaucoup plus eacuteleveacute agrave lrsquoachat et de plus dans notre application roulant sur un sol peu accidenteacute la masse pouvant ecirctre transporteacutee est suffisante pour le type NiCd

Les batteries LI-Ion ou LI-Polymer sont plus adapteacutees agrave lrsquoaeacuteromodeacutelisme ou au petit appareil eacutelectroniqueQuant aux batteries au plomb qui sont vraiment bon marcheacute le courant maximum supporteacute est trop faible est supposerait drsquoavoir une forte capaciteacute

Nous voulons avoir une autonomie de 30 minutes il nous faut donc une eacutenergie de 735 WhOr sous 24 V les batteries doivent avoir une capaciteacute de ~3 AhComme les batteries NiCd peuvent deacutebiter un courant maximum de 1C (une fois leur capaciteacute) nous devons donc prendre des batteries de 6Ah sous 24 V ce qui nous donnera une autonomie de 1 heure

Il faudra donc soit acheter un bloc accumulateur NiCd de 24 V 6 Ah srsquoil existe dans le commerce soit le reacutealiser nous mecircme en assemblant diffeacuterents eacuteleacutements

Rappelons que lrsquoassociation en seacuterie permet drsquoadditionner les tensions des eacuteleacutements associeacutes et que lrsquoassociation en parallegravele permet drsquoadditionner les courants deacutebiteacutes

Par exemple des eacuteleacutements de 12 V chacun pour 3 Ah srsquoassocieraient ainsi

Soit deux seacuteries de 20 eacuteleacutements eacutequivalentes agrave 24 V et faisant une capaciteacute de 3 Ah chacune

Il est possible de reacutepartir les accumulateurs en diffeacuterents paquets pour faciliter le rangement dans le robot ou reacutepartir la masse ou eacuteventuellement trouver des packs dans le commerce

Dans le cas de lrsquoUV PR le choix des batteries reste pour le moment sur les NiCd mais pour les essais pratiques on utilisera des batteries au plomb que lrsquoon possegravede deacutejagrave drsquoautant plus que les essais sont reacutealiseacutes avec les moteurs de propulsion et lrsquoasservissement seul ce qui

neacutecessite un deacutebit de courant de 24105 = 4375 A sur 2 batteries soit asymp2187 A

Comme les batteries au plomb peuvent deacutebiter 02C il nous en faudrait des de asymp 109 Ah

Or les essais de la base roulante ne seront que de courtes dureacutees et lrsquoon se contentera donc drsquoutiliser des batteries de 6 Ah pour des raisons de volume mecircme si elles ne sont pas vraiment bien dimensionneacutees

21 La commande des moteurs

Dans un premier temps nous verrons un bref reacutecapitulatif des cartes et modules drsquoasservissement du commerce

Pour la commande les moteurs plusieurs solutions ont eacuteteacute envisageacutees - Un asservissement lsquotout faitrsquo analogique modules laquo Escap raquo- Une solution lsquoartisanalersquo carte avec asservissement numeacuterique- Un asservissement lsquotout faitrsquo numeacuterique circuits laquo LM629 raquo

a Comparatifs des modules drsquoasservissement et calcul des correcteurs

Veille technologique sur les systegravemes drsquoasservissement utiliseacutes par les diffeacuterentes eacutecoles de la coupe E= M6

Le but de cette partie est drsquoeacutetudier les principales techniques drsquoasservissement utiliseacutees par les eacutecoles de la Coupe E=M6 Ce document est loin drsquoecirctre exhaustif et servira de base agrave compleacuteter et actualiser pour les semestres et eacutequipes prochaines

Apregraves une eacutetude sur plus drsquoune trentaine drsquoeacutecoles il ressort trois formes drsquoasservissement la plus utiliseacutee agrave 85 est du type PID en majoriteacute reacuteduit au PI ensuite viennent les microcontrocircleurs PIC associeacutes au PID et les modules AVR nous allons par la suite deacutetailler ces trois solutions Il existe eacutegalement des systegravemes de controcircle dits agrave retour drsquoeacutetat jamais utiliseacutes jusqursquoagrave preacutesent pour la Coupe crsquoest pourquoi nous ne deacutevelopperons pas son approche

3 Systegraveme PID

httpwwwancrorgfichtechactionpidindexhtm

a Principe

Pour pouvoir tester un asservissement il faut dabord reacutealiser une plate-forme de deacuteveloppement le plus geacuteneacuteralement du type suivant Mais pour commencer un brin de theacuteorie illustreacute par des exemples Le scheacutema de principe est repreacutesenteacute ci-dessous

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

Nous avons bien un scheacutema en boucle fermeacutee puisque la sortie du systegraveme est reacuteinjecteacutee dans lentreacutee Les trois blocs bleus correspondent chacun agrave une fonctionnaliteacute Ki est le coefficient inteacutegral Kp le coefficient proportionnel et Kd le coefficient deacuteriveacute Chacun de ces coefficients a une fonctionnaliteacute bien preacutecise Commenccedilons par le plus simple le proportionnel

b Asservissement P

Lasservissement proportionnel est essentiel au fonctionnement du PID Il permet essentiellement de donner de la puissance au moteur Voici quelques reacutesultats dexpeacuterimentations avec Ki=0 et Kd=0

La courbe noire repreacutesente la consigne que lon deacutesire atteindre (Ud) cest un eacutechelon de valeur 32 La courbe bleue repreacutesente la vitesse reacuteelle du systegraveme (Y) Comme vous pouvez le constater plus Kp est grand plus le systegraveme converge vite vers sa valeur finale Mais en contrepartie pour des valeurs de Kp trop grandes le systegraveme oscille Mais lagrave nest pas notre plus gros problegraveme en effet sur ces courbes on voit nettement que la vitesse du moteur natteint jamais la vitesse deacutesireacutee Cest ce que lon appelle lerreur statique elle correspond agrave la diffeacuterence entre la vitesse reacuteelle et la vitesse deacutesireacutee en reacutegime eacutetablie (une fois que le systegraveme sest stabiliseacute) Pour compenser cette erreur statique on rajoute le terme inteacutegral

c Asservissement PI

Le correcteur inteacutegral sert principalement agrave supprimer lerreur statique Lideacutee principale est de charger ou inteacutegrer lerreur depuis le deacutebut et dajouter cette erreur agrave la consigne jusquagrave ce quelle devienne nulle Lorsque cette erreur est nulle le terme inteacutegral se stabilise et il compense parfaitement lerreur entre la consigne et la vitesse reacuteelle Deacutemonstration en image

On voit cette fois-ci que le terme inteacutegral a bien fonctionneacute et que lerreur statique est nulle On constate aussi que plus le gain Ki est grand plus le systegraveme converge vite En revanche plus Ki est grand plus le systegraveme oscille et plus le deacutepassement est grand Sur des asservissements en position le terme deacuteriveacute permet de diminuer le deacutepassement et les oscillations Nous allons voir que dans notre cas nous avons quelques problegravemes

d Asservissement PID ou agrave avance de phase

On a donc rajouteacute le terme deacuteriveacute comme tout bon livre dautomatique le preacuteconise et voici les reacutesultats

Cette fois ci jai choisi de repreacutesenter la tension appliqueacutee au moteur (U) le problegraveme est bien plus flagrant ici Vous voyez que lorsque lon ajoute le terme deacuteriveacute la commande est extrecircmement bruiteacutee En reacutealiteacute on somme agrave la commande la deacuteriveacutee de la vitesse reacuteelle que lon multiplie par un gain Kd La deacuteriveacutee dune vitesse est une acceacuteleacuteration cela signifie que lon amplifie tous les bruits dacceacuteleacuteration et en plus on les multiplient par un gain Kd Donc rajoute du bruit amplifieacute dans la commande Alors pourquoi mettent t-ils ce terme deacuteriveacutee dans les livres Simplement parce que ce bruit est typique des asservissement en vitesse Sur des asservissements en position ce problegraveme est moins freacutequent car la deacuteriveacutee de la position est la vitesse

Ici le problegraveme eacutetait visible parce que nous avons reacutealiseacute toutes ces courbes sur un systegraveme reacuteel Si nous avions simuleacute ces reacutesultats lacceacuteleacuteration naurait pas eacuteteacute bruiteacutee et les courbes auraient eacuteteacute parfaites Pour impleacutementer ce PID sur notre robot il a fallu programmer en numeacuterique une deacuteriveacutee et une inteacutegrale

e PID numeacuterique et reacuteglage

Notre premier problegraveme est de programmer le terme inteacutegral Il existe une meacutethode qui consiste agrave estimer la surface entre deux eacutechantillons mais dans notre cas nous avons des problegravemes dus aux bruits et agrave la freacutequence deacutechantillonnage Alors il faut sommer toutes les erreurs depuis de deacutebut

Notre second problegraveme est de programmer le terme deacuteriveacute La meacutethode ici est de calculer la pente entre deux eacutechantillons de e Theacuteoriquement cela revient agrave faire le calcul suivant

Avec la peacuteriode deacutechantillonnage Pour faire un asservissement numeacuterique il faut impeacuterativement avoir une peacuteriode fixe Pour gagner du temps de calcul geacuteneacuteralement on inteacutegre directement dans le gain Kd

Voici un lalgorithme exemple

Ti = 0 Initialise le terme inteacutegral

for ( i=1 i lt= Nb_cycles i++ )

Init_timers (1) Initialise le timer agrave notre peacuteriode 1 ms

Y = Codeur () Stoque la valeur du codeur dans Y Rst_codeur () Remet le codeur agrave zeacutero Ud = Consigne () Mise agrave jour de la consigne e_old=e Stoque e(t-1) e = Ud - Y Calcul de lerreur Ti = Ti + e Calcul de linteacutegral Calcul du PID U = Kp e Terme proportionnel

+ Ki Ti Terme inteacutegral + Kd ( e - e_old ) Terme deacuteriveacute Moteur (U) On applique la consigne

while ( end_timer() ) On attend la fin de la peacuteriode

Pour le reacuteglage des gains Kp Ki et Kd il existe diffeacuterentes meacutethodes Ici nous lavons fait de maniegravere empirique et le reacutesultats est plutocirct bon Linconveacutenient de ces meacutethodes est quelles demandent un modegravele du systegraveme ce qui est geacuteneacuteralement dur agrave produire Il existe

aussi des composants programmables qui permettent de faire directement lasservissement numeacuterique (HCTL 1100 LM629) Ils sont exactement baseacutes sur la meacutethode preacutesenteacutee ici

Pour ce qui est du reacuteglage des correcteurs lrsquooptimal est drsquoutiliser la meacutethode de lrsquooptimum dissymeacutetrique une fois que lrsquoon agrave reacutealiseacute le modegravele du systegraveme La plus part des eacutecoles ne reacutealisent pas ce modegravele et ce limite donc agrave une correction empirique en reacutealisant des tests ou en utilisant la meacutethode Ziegler-Nichols agrave partir de la reacuteponse agrave un eacutechelon de tension

Par la suite nous rappellerons les meacutethodes de Ziegler-Nichols et de lrsquooptimum dissymeacutetrique

f Les meacutethodes de Ziegler-Nichols

Ces meacutethodes fournissent des reacuteglages pour des correcteurs de type PID (pouvant ne comporter quune action Proportionnelle une action Proportionnelle et une action Inteacutegrale ou les 3 actions simultaneacutement) dont la structure est la suivante

bull MEacuteTHODE DE ZIEGLER NICHOLS TEMPORELLE

Elle est adapteacutee aux systegravemes stables en boucle ouverte qui ont une reacuteponse apeacuteriodique La reacuteponse agrave un eacutechelon unitaire du systegraveme physique doit ecirctre enregistreacutee Diffeacuterentes caracteacuteristiques de la reacuteponse obtenue sont mesureacutees

Le modegravele approcheacute utiliseacutee par Ziegler Nichols comporte une constante de temps et un retard pur ou bien un retard pur et un inteacutegrateur

Si le systegraveme physique comporte un inteacutegrateur les mesures de a et de L demeurent disponibles sur le deacutebut de la reacuteponse

Les reacuteglages suggeacutereacutes par la meacutethode temporelle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 1a - -correcteur PI 09a 3L -

correcteur PID 12a 2L L2Concernant le raffinement des reacuteglages augmenter Kp ou diminuer Ti augment les

oscillations de la sortie

bull MEacuteTHODE DE ZIEGLER NICHOLS FREacuteQUENTIELLE

Cette meacutethode convient particuliegraverement bien aux systegravemes instables en boucle ouverte pour lesquels la meacutethode temporelle nest pas envisageable Lexpeacuterimentation se fait sur le systegraveme boucleacute avec un simple gain proportionnel qui doit ecirctre stable Le principe est de modifier la valeur du gain par essai-erreur jusquagrave atteindre la limite de stabiliteacute (pheacutenomegravene de pompage) Il reste agrave relever le gain limite K0 obtenu et agrave mesurer la peacuteriode T0 des oscillations de la reacuteponse obtenue

Les reacuteglages suggeacutereacutes par la meacutethode freacutequentielle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 05 K0 - -correcteur PI 045 K0 08 T0 -

correcteur PID 06 K0 05 T0 0125 T0

A la page Internet suivante vous trouverez un simulateur de cette meacutethode

httpwww-hadocensieginpgfrhadocateliersreglageEmpCorrReglEmpCorrDroithtml

g Meacutethode de lrsquooptimum dyssimeacutetique (voir poly MC06 Chap 5 et 8)

Cette meacutethode srsquoapplique une fois le modegravele reacutealiseacute et mis sous la forme drsquoun second ordre

et on obtient le correcteur PI

pour une surtension deacutesireacutee QdB

Q = 10^(QdB20)λ= radic(Qsup2(Qsup2-1))Δφ = arcos (1 λ)α= ((1+sin(Δφ))cos(Δφ))sup2ωN= ωQαω0= ωQradicαKP= ω0 λ KQ

4 Les microcontrocircleurs

a Avant propos

Cette fiche se veut ecirctre sous la forme dun projet Un projet non termineacute ougrave chacun peut apporter sa contribution (ameacuteliorations adaptations corrections etc)De ce fait ces pages sont ameneacutees agrave eacutevoluer et vous-mecircme pourrez participer agrave leur eacutevolution

Pourquoi avoir choisit un tel mode de travail Tout simplement parce que le sujet est vaste et que des variations sont possibles suivant lutilisation quen feront les diffeacuterentes personnes

Le but de ce projet est de reacutealiser une double asservissement de vitesse (type PID) de deux moteurs sur un seul PIC (type 16F877) Lutiliteacute majeure eacutetant de faire rouler un robot bien droit et agrave la bonne vitesse A quoi ccedila sert plus preacuteciseacutement

Avec un seul PIC ce projet permet aux roboticiens amateurs et chevronneacutes de reacutealiser facilement leur asservissement de vitesse de moteurs agrave courant continu (en geacuteneacuteral les moteurs de propulsions de leur robot mais ccedila peut ecirctre bien sucircr dautres moteurs) La commande de lasservissement pourra se faire agrave terme en liaison seacuterie (deacutejagrave fait) I2C ou par bus ISA

b Avantages

Il existe bien sucircr dautres systegravemes qui gegraverent un asservissement de vitesses Des systegravemes professionnels existent comme les LM629 Ils ont linconveacutenient decirctre cher (et ce pour un seul moteur) et relativement complexes

Pourquoi chercher un fusil pour chasser des moustiques Le double asservissement sur PIC vous coucircte le prix dun PIC soit environ 15Euro pour un 16F877 actuellement et ce pour 2 moteurs Ce double asservissement se veut relativement simple De plus vous pouvez en modifier le programme et ladapter agrave vos besoins

c Inconveacutenients

Les personnes qui auront les moyens preacutefeacutererons opter pour un systegraveme professionnel certainement pour des raisons de fiabiliteacute mais cest agrave leurs risques et peacuterils -)La puissance du PIC eacutetant limiteacutee il ne peut pas reacutealiser des PID trop rapides ou trop complexes Il y a en particulier une limitation sur le nombre dimpulsions par seconde quil est capable de geacuterer

Le langage utiliseacute eacutetant le C il faut une licence du logiciel pour pouvoir modifier et recompiler le code source c Mais le projet se veut geacuteneacuterique Une version donneacutee pourra ecirctre utiliseacute sans recompilation en respectant quelques contraintes

d Asservissement

En fait on pourrait imaginer quil suffirait denvoyer au moteur une puissance constante pour quil tourne tout le temps agrave la mecircme vitesse Ce nest pas vrai du tout Tout dabord 2 moteurs dune mecircme seacuterie nauront pas forceacutement le mecircme comportement Ensuite parce que les niveaux de tension ou dautre diffeacuterences eacutelectriques peuvent jouer Enfin parce que des influences exteacuterieures (obstacles frein meacutecanique du robot) peuvent jouer

Du coup il est tregraves difficile de faire aller un moteur agrave la vitesse voulue Parfois ce nest pas gecircnant mais ccedila peut lecirctre Un exemple classique est le robot avec 2 roues motrices type char une configuration qui est tregraves courante Mais pour que ce robot aille droit il faut que les 2 moteurs aillent exactement agrave la mecircme vitesse

La solution est de faire un asservissement Cest a dire moduler dynamiquement la puissance envoyeacute aux moteurs suivant leur vitesse mesureacutee afin dadapter celle-ci agrave ce qui est deacutesireacuteeCela implique un eacuteleacutement tregraves important pour asservir il faut un capteur de vitesse du moteur En geacuteneacuteral il sagit dun compte-tour qui enverra N impulsions (ou pas) par tour de moteur Ensuite un programme va calculer en fonction de la vitesse mesureacutee du moteur la puissance agrave utiliser

Les asservissements sont constamment en train de chercher leacutequilibre Il faut bien comprendre quils mettent un certain temps agrave latteindre et ce dernier peut aussi ecirctre instable si lasservissement est mal reacutegleacute

Lasservissement quon va utiliser ici est un classique PIDou plus preacuteciseacutement un PI car pour des raisons de vitesses de traitement la composante deacuteriveacutee est laisseacutee de coteacute (mais rien de difficile agrave rajouter)

Le PID ou Proportionnel Inteacutegrale Deacuteriveacute est une meacutethode de calcul dasservissement

Soit Kp Ki et Kd les coefficients proportionnels inteacutegrale et deacuteriveacuteSoit e lerreur Vitesse mesureacutee moins vitesse demandeacuteeSoit Ti le terme inteacutegral dabord initialiseacute agrave 0

Consigne a appliquer (PWM) = Kp e + (1Ki) (Ti += e) + Kd (e - e(t-1))

On pourrait dire des pages et des pages sur le PID et ce nest pas mon but ici Merci de vous reporter au lien ci-dessous

Pour plus de deacutetails sur le PID la page de lANCR httpwwwancrorgfichtechactionpidindexhtmChez les Fribottes la Simulation de Jean-Claude httpwwwwikifreefrWiKiFriindexphpSimulateur20de20PID

e Le pic

Le PIC est un petit microcontrocircleur assez bon marche et simple a programmer comme a utiliser

La aussi je vais pas rentrer dans les deacutetails vous pouvez vous reporter agrave la bdtech du site Fribotte et en particulier aux cours de Bigonoff

Le PIC est ici programmeacute en C voir la page Fribotte ici Lutilisation du langage C permet dalleacuteger consideacuterablement le deacuteveloppement dune application compliqueacutee

2 Module AVR

httpwwwenseirbfr~matzfravrphp

Tregraves peu de renseignement sur ce module sinon ces informations drsquoun eacutetudiant de lrsquoEnseirb

Depuis plusieurs anneacutees je participe agrave la coupe de robotique E=M6 dont lobjectif pour chaque eacutequipe est de fabriquer un robot autonome devant se conformer agrave un regraveglement Pour plus dinfos vous pouvez vous rendre sur le site de mon eacutequipe Microb Technology ou bien sur le site de Planegravete Sciences lorganisme beacuteneacutevole qui organise cette compeacutetition

Jai deacutecouvert en 2001 les microcontrocircleurs Atmel AVR auxquels je me suis beaucoup attacheacute dune part parce quils sont assez performants pour des microcontrocircleurs 8 bits mais aussi et surtout car le fameux compilateur libre GCC est capable de compiler du code C pour ces petites becirctes Il existe de surcroicirct plusieurs outils libres permettant de les programmer de les simuler etc

Le but de ce projet est donc de deacutevelopper des modules servant dinterface geacuteneacuterique avec le hardware du microcontrocircleur quel que soit la version (par exemple les UART inclus dans les AVR AtMega sont diffeacuterents de ceux preacutesents dans les petits AVR) et de deacutevelopper des modules utiles pour certaines utilisations usuelles et pas seulement pour la coupe E=M6 (codage de hamming asservissement chiffrement etc)

Vous pouvez contacter leacutequipe de deacuteveloppement agrave avr-devdroids-corporg Pour le moment aucune release na eacuteteacute faite mais le travail est deacutejagrave bien avanceacute Chaque soir un screenshot du CVS est reacutealiseacute Il peut ne pas compiler mais normalement ccedila devrait fonctionner Voici le lien

3 Modules drsquoasservissement analogique laquo Escap raquo

Nous avons essayeacute de reacutecupeacuterer les cartes de commande Escap pour moteurs Escap qui avaient eacuteteacute utiliseacutees en 96 et 98 avec succegraves

Nous les avons monteacutes sur une base roulante qui pesait en tout 74 kgVoici grosso-modo leurs avantages et leurs inconveacutenients (pour les notices techniques voir le rapport 96 ou 98)

a Avantages

Cette carte inclut directement un asservissement avec correcteur PI la commande de puissance les ponts en H

Elle est tregraves facile agrave utiliser Elle est speacutecialement conccedilue pour les moteurs Escap que nous avons donc

parfaitement adapteacutee

b Inconveacutenients

Les moteurs ne fonctionnent correctement que sous 24v Les cartes et les moteurs semblent assez gourment Les cartes nantis de gros radiateurs sont relativement encombrantes Les tachymegravetres monteacutes sur les moteurs ne donnent pas une indication de position

mais de vitesse (qui plus est en analogique)

Nous avons preacutefeacutereacute refaire la partie commande car celle de 1996 souffrait de quelques deacutefauts (cf rapport 1996)

La conversion numeacuterique analogique

Pour reacutealiser la conversion numeacuterique analogique nous avons choisit un pont agrave reacutesistance R-2R

Nous pouvons consideacuterer que chaque bit est relieacute agrave un geacuteneacuterateur ideacuteal de tension (qui deacutelivre 0v ou 5v) Par conseacutequent la reacutesistance eacutequivalente quelque soit lrsquoeacutetat des bits et quelques soit le nombre de bits vue entre la sortie et la masse sera eacutegal agrave R

La tension Vs en fonction de lrsquoeacutetat des bits sera

Ce type de CAN eacutetant tregraves classique nous nrsquoindiquerons pas les deacutemonstrations toutefois vous pourrez les trouver tregraves facilement sur Internet ou sur le Cd-rom drsquoannexes joint au dossier

Le montage de Thevenin eacutequivalent est donc

Nous avons jugeacute qursquoune discreacutetisation sur 8 bits eacutetait un peu superflu crsquoest pourquoi nous nous contenterons de 4 bits (ce qui repreacutesentent quand mecircme 16 niveaux de vitesse)

bull Lrsquoadaptation du niveau de tension

Nous avons agrave la sortie du CAN une tension qui srsquoeacutetend de 0 agrave 5v or la commande des cartes Escap ce fait entre -5v et +5v

On peut voir cette adaptation comme lrsquoajout drsquoun offset de -25v et une amplification de gain 2

Voici le montage reacutealisant cette conversion

M1 est un montage suiveur qui lsquorecopiersquo la tension aux bornes de P1 mais sous une impeacutedance constante et eacutegale agrave 4R En 1996 lrsquoeacutequipe avait brancheacute P1 directement sur M3 mais cela a pour inconveacutenient de faire varier agrave la fois lrsquooffset et la penteLe potentiomegravetre P1 permet drsquoajuster lrsquooffset (permet par conseacutequent de reacutegler lrsquoarrecirct complet de moteur) (La valeur theacuteorique de lrsquooffset est 5V (cf formule en M3))

M2 est aussi un montage suiveur Le potentiomegravetre P2 permet drsquoajuster la pente (qui doit avoir un coefficient directeur de 2) Comme M2 est connecteacute au CAN dont la reacutesistance interne est de R P2 doit ecirctre a peut precirct eacutegal agrave R de la sorte la branche aura une reacutesistance eacutequivalente de 2R

M3 Sommateur (Vs = - 2 (Ve + Voffset))

Qursquoelle valeur choisir pour R

Theacuteoriquement on peut choisir nrsquoimporte quelle valeur pour R mais en pratique si R est trop petite une intensiteacute importante serait consommeacutee sans raison et si R est trop grande la forte impeacutedance du montage le rendra tregraves sensible aux parasites (secteur moteurshellip)Ce montage a eacuteteacute testeacute et fonctionne correctement pour R=5k les amplificateurs opeacuterationnels utiliseacutes sont des LM324 mais drsquoautres seraient tout agrave fait envisageables (peu de contraintes de vitesse et de tensions de deacutechets)

4 Conclusion

Nous avons preacutefeacutereacute ne pas utiliser les cartes Escap car les moteurs ne renvoient pas une position sous forme drsquoimpulsion mais une vitesse Etant donneacute que nous avions envisageacute un repeacuterage par odomeacutetrie cela compliquait consideacuterablement la tache

Toutefois il faut savoir que cette solution a eacuteteacute testeacutee et fonctionne tregraves bien (bonne preacutecision bonne dynamique) ainsi dans le cas ougrave le repeacuterage ne se fait pas par odomeacutetrie mais des balises exteacuterieures sachez que cette solution est tregraves pratique agrave utiliser En effet pour imposer une vitesse il suffit au microcontrocircleur drsquoappliquer sur un port un mot binaire correspondant agrave la vitesse voulue hellip et crsquoest tout La carte Escap se charge du reste

5 Carte drsquoasservissement numeacuterique laquo artisanale raquo

La carte reacutealiseacutee baseacutee sur un microcontrocircleur PIC 16F877A srsquoest aveacutereacutee fonctionnelle mais les tests drsquoalgorithmes drsquoasservissement nrsquoont pas eacuteteacute effectueacutesEn effet lrsquoutilisation de cette solution neacutecessite un microcontrocircleur deacutedieacute agrave lrsquoasservissement capable de communiquer via un protocole agrave deacutefinir avec la laquo carte megravere raquo (centralisant les retours des autres capteurs du robot et agissant sur les diffeacuterents actionneurs en fonction de la strateacutegie)Or afin de limiter le nombre de microcontrocircleurs sur le robot et du fait que lrsquoon dispose drsquoun budget suffisant nous avons deacutecideacute drsquoessayer drsquoutiliser des composants speacuteciaux reacutealisant lrsquoasservissement

Le systegraveme se deacutecompose en

- Un microcontrocircleur pour appliquer la PWM asservir et commander- Une carte de puissance pour chaque moteur baseacutee sur un LMD18200- Une carte compteur drsquoimpulsions pour les codeurs

Afin de favoriser lrsquointeractiviteacute et les reacuteglages jrsquoai ajouteacute une carte afficheur LCD avec 6 boutons sur la carte microcontrocircleur

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 21: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

b Moment de flexion

0 =sum= cMMf

02

sup2 =minus+ RaxqxMf

sup221

21 qxqLxMf minus=

c Flegraveche

)( xMfEIY =

sup221

21 qxqLxEIY minus=

161sup2

41 3 CqxqLxEIY +minus=

21241

121 43 CxCqxqLxEIY ++minus=

d Conditions aux limites

Y (x=0) = 0 C2 = 0

Y (x=L) = 0 012412

44

=+minus LCqLqL

241

4qLLC =

241

3qLC =

On obtient donc

xqLqxqLxEIY 343

241

241

121 +minus=

De mecircme

+minus=

242412

343 xLxLxEIqY

On sait que bull E = 210 000 10^6bull Y = 1 10^-3 mbull Q = 555 Nmbull L = 027 m

bull12

3bhI = b = 006 m

+

minus

=24

22416

128

343 LL

LLL

EYqI

36

4

0010102100000601052155512timestimes

timestimes=minus

h

Et enfin on trouve h lrsquoeacutepaisseur de la platine h= 43 mm

Apregraves reacuteflexion nous nous sommes rendu compte que ce calcul nrsquoeacutetait pas rigoureux car nous avons consideacutereacute la theacuteorie des poutres or dans notre cas nous ne pouvons satisfaire cette theacuteorie (Longueur de la section = 10 x la largeur de la section)

Il nous faut donc utiliser un modegravele plus preacutecis crsquoest pourquoi nous avons deacutecideacute de faire un calcul par eacuteleacutements finis sous Ideacuteas Ainsi nous trouvons une eacutepaisseur h = 32 mm

Il nous faut donc une platine de plus de 3 mm Etant donneacute que la platine sera solidairement fixeacutee agrave la base du robot nous avons deacutecideacute de prendre une eacutepaisseur de platine de 2 mm et une eacutepaisseur de base de robot de 2 mm Nous obtenons donc une eacutepaisseur totale de 4 mm Ainsi nous devrions avoir sous une charge de 15 kg moins drsquoun millimegravetre de flexion de la base du robot

6 Reacutesultats

Assemblage en position horizontale

Vue eacuteclateacutee en position verticale

Photo de lrsquoassemblage roues ndash blocs moteurs ndash moteurs ndash platine

Partie C Lrsquoeacutelectronique20 Les batteries

Afin de pouvoir choisir les batteries approprieacutees agrave notre application nous devons dans un premier temps faire une estimation de la consommation drsquoeacutenergie totale avec les pointes de courant envisageacutees dans notre robotIl est agrave noter que nous ne connaissons pas encore en deacutetail tous les eacuteleacutements annexes qui seront implanteacutes dans le robot comme par exemple les capteurs et actionneurs diverses qui seront choisis en fonction des objectifs technologiques atteints ou non de lrsquoassociation et de la strateacutegie finaleDans le but de pouvoir utiliser agrave nouveau dans lrsquoavenir notre base roulante nous avons choisi de surestimer les besoins en eacutenergie de sorte agrave ne pas ecirctre pris au deacutepourvu

La consommation pourrait se deacutecomposer ainsi - 2 moteurs de 24V sous 21A soit 1008 Watts pendant 100 du temps- 3 actionneurs de 21 Watts chacun soit 63 Watts pendant 50 du temps- 3A pour lrsquoeacutelectronique sous 5V soit 15 Watts pendant 100 du temps (Asservissement carte de commandes capteurs)

Ce qui nous fait au total une consommation maximale ~180 WattsLa consommation permanente devrait ecirctre ~147 Watts permanents il faut donc que les batteries puissent deacutebiter un courant de ~6 A sous 24 V durant le fonctionnement du robot

Apregraves une longue recherche on a pu reacutealiser le tableau comparatif des batteries suivant

typeDensiteacute

deacutenergie (WhKg)

Densiteacute deacutenergie (WhL)

auto-deacutecharge (mois)

voltage dune cellule (V)

temps de charge rapide

plomb 35 111 5 agrave 10 2 8h agrave 15h

NiCd (Nickel Cadnium) 50 94 10 agrave 20 12 1h30min

NiMH (Nickel Metal Hydride) 80 135 20 agrave 30 13 2h agrave 4h

Lithium Ion 100 196 5 agrave 10 36 2h agrave 4h

Lithium polymer 150 200 5 agrave 10 36 2h agrave 4h

AlKaline rechargeable 80 15 2h agrave 3h

type

cycle de charge-deacutecharge avant

que capaciteacute passe de 100 agrave

80

Courant max Courant max pic effet meacutemoire estimation

(euroWh) prixcycles

plomb 200 agrave 300 02C 05C M 0895 0003

NiCd (Nickel Cadnium) 1500 1C 20C H 416 0003

NiMH (Nickel Metal Hydride) 300 agrave 500 05C 5C L 2 0004

Lithium Ion 500 agrave 1000 1C 2C L 8 0008

Lithium polymer 300 agrave 500 1C 2C agrave 5C L 32 0006

AlKaline rechargeable 50 02C 05C H 178 0036

Effet meacutemoire L (Low) M (Medium) H (High)Courant max C signifie capaciteacute par exemple une batterie qui peut deacutelivrer un courant max de 1C de 4Ah pourra donc deacutelivrer 4A au maximum sans risque de deacuteteacuterioration

Nous nous sommes inteacuteresseacutes au courant maximum et au temps de charge rapide pour notre choix de batteriesLe type de batterie qui semble le plus approprieacute pour nous est le type Nickel-Cadnium parfaitement adapteacute au pic drsquoappel de courant que provoquent des moteurs pouvant supporter des charges rapides en 1h30min seulement afin de devoir preacutevoir trop de jeux de batteries diffeacuterents

Les batteries LI-Ion ou LI-Polymer preacutesentent une densiteacute eacutenergeacutetique tregraves inteacuteressante mais leur prix est beaucoup plus eacuteleveacute agrave lrsquoachat et de plus dans notre application roulant sur un sol peu accidenteacute la masse pouvant ecirctre transporteacutee est suffisante pour le type NiCd

Les batteries LI-Ion ou LI-Polymer sont plus adapteacutees agrave lrsquoaeacuteromodeacutelisme ou au petit appareil eacutelectroniqueQuant aux batteries au plomb qui sont vraiment bon marcheacute le courant maximum supporteacute est trop faible est supposerait drsquoavoir une forte capaciteacute

Nous voulons avoir une autonomie de 30 minutes il nous faut donc une eacutenergie de 735 WhOr sous 24 V les batteries doivent avoir une capaciteacute de ~3 AhComme les batteries NiCd peuvent deacutebiter un courant maximum de 1C (une fois leur capaciteacute) nous devons donc prendre des batteries de 6Ah sous 24 V ce qui nous donnera une autonomie de 1 heure

Il faudra donc soit acheter un bloc accumulateur NiCd de 24 V 6 Ah srsquoil existe dans le commerce soit le reacutealiser nous mecircme en assemblant diffeacuterents eacuteleacutements

Rappelons que lrsquoassociation en seacuterie permet drsquoadditionner les tensions des eacuteleacutements associeacutes et que lrsquoassociation en parallegravele permet drsquoadditionner les courants deacutebiteacutes

Par exemple des eacuteleacutements de 12 V chacun pour 3 Ah srsquoassocieraient ainsi

Soit deux seacuteries de 20 eacuteleacutements eacutequivalentes agrave 24 V et faisant une capaciteacute de 3 Ah chacune

Il est possible de reacutepartir les accumulateurs en diffeacuterents paquets pour faciliter le rangement dans le robot ou reacutepartir la masse ou eacuteventuellement trouver des packs dans le commerce

Dans le cas de lrsquoUV PR le choix des batteries reste pour le moment sur les NiCd mais pour les essais pratiques on utilisera des batteries au plomb que lrsquoon possegravede deacutejagrave drsquoautant plus que les essais sont reacutealiseacutes avec les moteurs de propulsion et lrsquoasservissement seul ce qui

neacutecessite un deacutebit de courant de 24105 = 4375 A sur 2 batteries soit asymp2187 A

Comme les batteries au plomb peuvent deacutebiter 02C il nous en faudrait des de asymp 109 Ah

Or les essais de la base roulante ne seront que de courtes dureacutees et lrsquoon se contentera donc drsquoutiliser des batteries de 6 Ah pour des raisons de volume mecircme si elles ne sont pas vraiment bien dimensionneacutees

21 La commande des moteurs

Dans un premier temps nous verrons un bref reacutecapitulatif des cartes et modules drsquoasservissement du commerce

Pour la commande les moteurs plusieurs solutions ont eacuteteacute envisageacutees - Un asservissement lsquotout faitrsquo analogique modules laquo Escap raquo- Une solution lsquoartisanalersquo carte avec asservissement numeacuterique- Un asservissement lsquotout faitrsquo numeacuterique circuits laquo LM629 raquo

a Comparatifs des modules drsquoasservissement et calcul des correcteurs

Veille technologique sur les systegravemes drsquoasservissement utiliseacutes par les diffeacuterentes eacutecoles de la coupe E= M6

Le but de cette partie est drsquoeacutetudier les principales techniques drsquoasservissement utiliseacutees par les eacutecoles de la Coupe E=M6 Ce document est loin drsquoecirctre exhaustif et servira de base agrave compleacuteter et actualiser pour les semestres et eacutequipes prochaines

Apregraves une eacutetude sur plus drsquoune trentaine drsquoeacutecoles il ressort trois formes drsquoasservissement la plus utiliseacutee agrave 85 est du type PID en majoriteacute reacuteduit au PI ensuite viennent les microcontrocircleurs PIC associeacutes au PID et les modules AVR nous allons par la suite deacutetailler ces trois solutions Il existe eacutegalement des systegravemes de controcircle dits agrave retour drsquoeacutetat jamais utiliseacutes jusqursquoagrave preacutesent pour la Coupe crsquoest pourquoi nous ne deacutevelopperons pas son approche

3 Systegraveme PID

httpwwwancrorgfichtechactionpidindexhtm

a Principe

Pour pouvoir tester un asservissement il faut dabord reacutealiser une plate-forme de deacuteveloppement le plus geacuteneacuteralement du type suivant Mais pour commencer un brin de theacuteorie illustreacute par des exemples Le scheacutema de principe est repreacutesenteacute ci-dessous

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

Nous avons bien un scheacutema en boucle fermeacutee puisque la sortie du systegraveme est reacuteinjecteacutee dans lentreacutee Les trois blocs bleus correspondent chacun agrave une fonctionnaliteacute Ki est le coefficient inteacutegral Kp le coefficient proportionnel et Kd le coefficient deacuteriveacute Chacun de ces coefficients a une fonctionnaliteacute bien preacutecise Commenccedilons par le plus simple le proportionnel

b Asservissement P

Lasservissement proportionnel est essentiel au fonctionnement du PID Il permet essentiellement de donner de la puissance au moteur Voici quelques reacutesultats dexpeacuterimentations avec Ki=0 et Kd=0

La courbe noire repreacutesente la consigne que lon deacutesire atteindre (Ud) cest un eacutechelon de valeur 32 La courbe bleue repreacutesente la vitesse reacuteelle du systegraveme (Y) Comme vous pouvez le constater plus Kp est grand plus le systegraveme converge vite vers sa valeur finale Mais en contrepartie pour des valeurs de Kp trop grandes le systegraveme oscille Mais lagrave nest pas notre plus gros problegraveme en effet sur ces courbes on voit nettement que la vitesse du moteur natteint jamais la vitesse deacutesireacutee Cest ce que lon appelle lerreur statique elle correspond agrave la diffeacuterence entre la vitesse reacuteelle et la vitesse deacutesireacutee en reacutegime eacutetablie (une fois que le systegraveme sest stabiliseacute) Pour compenser cette erreur statique on rajoute le terme inteacutegral

c Asservissement PI

Le correcteur inteacutegral sert principalement agrave supprimer lerreur statique Lideacutee principale est de charger ou inteacutegrer lerreur depuis le deacutebut et dajouter cette erreur agrave la consigne jusquagrave ce quelle devienne nulle Lorsque cette erreur est nulle le terme inteacutegral se stabilise et il compense parfaitement lerreur entre la consigne et la vitesse reacuteelle Deacutemonstration en image

On voit cette fois-ci que le terme inteacutegral a bien fonctionneacute et que lerreur statique est nulle On constate aussi que plus le gain Ki est grand plus le systegraveme converge vite En revanche plus Ki est grand plus le systegraveme oscille et plus le deacutepassement est grand Sur des asservissements en position le terme deacuteriveacute permet de diminuer le deacutepassement et les oscillations Nous allons voir que dans notre cas nous avons quelques problegravemes

d Asservissement PID ou agrave avance de phase

On a donc rajouteacute le terme deacuteriveacute comme tout bon livre dautomatique le preacuteconise et voici les reacutesultats

Cette fois ci jai choisi de repreacutesenter la tension appliqueacutee au moteur (U) le problegraveme est bien plus flagrant ici Vous voyez que lorsque lon ajoute le terme deacuteriveacute la commande est extrecircmement bruiteacutee En reacutealiteacute on somme agrave la commande la deacuteriveacutee de la vitesse reacuteelle que lon multiplie par un gain Kd La deacuteriveacutee dune vitesse est une acceacuteleacuteration cela signifie que lon amplifie tous les bruits dacceacuteleacuteration et en plus on les multiplient par un gain Kd Donc rajoute du bruit amplifieacute dans la commande Alors pourquoi mettent t-ils ce terme deacuteriveacutee dans les livres Simplement parce que ce bruit est typique des asservissement en vitesse Sur des asservissements en position ce problegraveme est moins freacutequent car la deacuteriveacutee de la position est la vitesse

Ici le problegraveme eacutetait visible parce que nous avons reacutealiseacute toutes ces courbes sur un systegraveme reacuteel Si nous avions simuleacute ces reacutesultats lacceacuteleacuteration naurait pas eacuteteacute bruiteacutee et les courbes auraient eacuteteacute parfaites Pour impleacutementer ce PID sur notre robot il a fallu programmer en numeacuterique une deacuteriveacutee et une inteacutegrale

e PID numeacuterique et reacuteglage

Notre premier problegraveme est de programmer le terme inteacutegral Il existe une meacutethode qui consiste agrave estimer la surface entre deux eacutechantillons mais dans notre cas nous avons des problegravemes dus aux bruits et agrave la freacutequence deacutechantillonnage Alors il faut sommer toutes les erreurs depuis de deacutebut

Notre second problegraveme est de programmer le terme deacuteriveacute La meacutethode ici est de calculer la pente entre deux eacutechantillons de e Theacuteoriquement cela revient agrave faire le calcul suivant

Avec la peacuteriode deacutechantillonnage Pour faire un asservissement numeacuterique il faut impeacuterativement avoir une peacuteriode fixe Pour gagner du temps de calcul geacuteneacuteralement on inteacutegre directement dans le gain Kd

Voici un lalgorithme exemple

Ti = 0 Initialise le terme inteacutegral

for ( i=1 i lt= Nb_cycles i++ )

Init_timers (1) Initialise le timer agrave notre peacuteriode 1 ms

Y = Codeur () Stoque la valeur du codeur dans Y Rst_codeur () Remet le codeur agrave zeacutero Ud = Consigne () Mise agrave jour de la consigne e_old=e Stoque e(t-1) e = Ud - Y Calcul de lerreur Ti = Ti + e Calcul de linteacutegral Calcul du PID U = Kp e Terme proportionnel

+ Ki Ti Terme inteacutegral + Kd ( e - e_old ) Terme deacuteriveacute Moteur (U) On applique la consigne

while ( end_timer() ) On attend la fin de la peacuteriode

Pour le reacuteglage des gains Kp Ki et Kd il existe diffeacuterentes meacutethodes Ici nous lavons fait de maniegravere empirique et le reacutesultats est plutocirct bon Linconveacutenient de ces meacutethodes est quelles demandent un modegravele du systegraveme ce qui est geacuteneacuteralement dur agrave produire Il existe

aussi des composants programmables qui permettent de faire directement lasservissement numeacuterique (HCTL 1100 LM629) Ils sont exactement baseacutes sur la meacutethode preacutesenteacutee ici

Pour ce qui est du reacuteglage des correcteurs lrsquooptimal est drsquoutiliser la meacutethode de lrsquooptimum dissymeacutetrique une fois que lrsquoon agrave reacutealiseacute le modegravele du systegraveme La plus part des eacutecoles ne reacutealisent pas ce modegravele et ce limite donc agrave une correction empirique en reacutealisant des tests ou en utilisant la meacutethode Ziegler-Nichols agrave partir de la reacuteponse agrave un eacutechelon de tension

Par la suite nous rappellerons les meacutethodes de Ziegler-Nichols et de lrsquooptimum dissymeacutetrique

f Les meacutethodes de Ziegler-Nichols

Ces meacutethodes fournissent des reacuteglages pour des correcteurs de type PID (pouvant ne comporter quune action Proportionnelle une action Proportionnelle et une action Inteacutegrale ou les 3 actions simultaneacutement) dont la structure est la suivante

bull MEacuteTHODE DE ZIEGLER NICHOLS TEMPORELLE

Elle est adapteacutee aux systegravemes stables en boucle ouverte qui ont une reacuteponse apeacuteriodique La reacuteponse agrave un eacutechelon unitaire du systegraveme physique doit ecirctre enregistreacutee Diffeacuterentes caracteacuteristiques de la reacuteponse obtenue sont mesureacutees

Le modegravele approcheacute utiliseacutee par Ziegler Nichols comporte une constante de temps et un retard pur ou bien un retard pur et un inteacutegrateur

Si le systegraveme physique comporte un inteacutegrateur les mesures de a et de L demeurent disponibles sur le deacutebut de la reacuteponse

Les reacuteglages suggeacutereacutes par la meacutethode temporelle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 1a - -correcteur PI 09a 3L -

correcteur PID 12a 2L L2Concernant le raffinement des reacuteglages augmenter Kp ou diminuer Ti augment les

oscillations de la sortie

bull MEacuteTHODE DE ZIEGLER NICHOLS FREacuteQUENTIELLE

Cette meacutethode convient particuliegraverement bien aux systegravemes instables en boucle ouverte pour lesquels la meacutethode temporelle nest pas envisageable Lexpeacuterimentation se fait sur le systegraveme boucleacute avec un simple gain proportionnel qui doit ecirctre stable Le principe est de modifier la valeur du gain par essai-erreur jusquagrave atteindre la limite de stabiliteacute (pheacutenomegravene de pompage) Il reste agrave relever le gain limite K0 obtenu et agrave mesurer la peacuteriode T0 des oscillations de la reacuteponse obtenue

Les reacuteglages suggeacutereacutes par la meacutethode freacutequentielle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 05 K0 - -correcteur PI 045 K0 08 T0 -

correcteur PID 06 K0 05 T0 0125 T0

A la page Internet suivante vous trouverez un simulateur de cette meacutethode

httpwww-hadocensieginpgfrhadocateliersreglageEmpCorrReglEmpCorrDroithtml

g Meacutethode de lrsquooptimum dyssimeacutetique (voir poly MC06 Chap 5 et 8)

Cette meacutethode srsquoapplique une fois le modegravele reacutealiseacute et mis sous la forme drsquoun second ordre

et on obtient le correcteur PI

pour une surtension deacutesireacutee QdB

Q = 10^(QdB20)λ= radic(Qsup2(Qsup2-1))Δφ = arcos (1 λ)α= ((1+sin(Δφ))cos(Δφ))sup2ωN= ωQαω0= ωQradicαKP= ω0 λ KQ

4 Les microcontrocircleurs

a Avant propos

Cette fiche se veut ecirctre sous la forme dun projet Un projet non termineacute ougrave chacun peut apporter sa contribution (ameacuteliorations adaptations corrections etc)De ce fait ces pages sont ameneacutees agrave eacutevoluer et vous-mecircme pourrez participer agrave leur eacutevolution

Pourquoi avoir choisit un tel mode de travail Tout simplement parce que le sujet est vaste et que des variations sont possibles suivant lutilisation quen feront les diffeacuterentes personnes

Le but de ce projet est de reacutealiser une double asservissement de vitesse (type PID) de deux moteurs sur un seul PIC (type 16F877) Lutiliteacute majeure eacutetant de faire rouler un robot bien droit et agrave la bonne vitesse A quoi ccedila sert plus preacuteciseacutement

Avec un seul PIC ce projet permet aux roboticiens amateurs et chevronneacutes de reacutealiser facilement leur asservissement de vitesse de moteurs agrave courant continu (en geacuteneacuteral les moteurs de propulsions de leur robot mais ccedila peut ecirctre bien sucircr dautres moteurs) La commande de lasservissement pourra se faire agrave terme en liaison seacuterie (deacutejagrave fait) I2C ou par bus ISA

b Avantages

Il existe bien sucircr dautres systegravemes qui gegraverent un asservissement de vitesses Des systegravemes professionnels existent comme les LM629 Ils ont linconveacutenient decirctre cher (et ce pour un seul moteur) et relativement complexes

Pourquoi chercher un fusil pour chasser des moustiques Le double asservissement sur PIC vous coucircte le prix dun PIC soit environ 15Euro pour un 16F877 actuellement et ce pour 2 moteurs Ce double asservissement se veut relativement simple De plus vous pouvez en modifier le programme et ladapter agrave vos besoins

c Inconveacutenients

Les personnes qui auront les moyens preacutefeacutererons opter pour un systegraveme professionnel certainement pour des raisons de fiabiliteacute mais cest agrave leurs risques et peacuterils -)La puissance du PIC eacutetant limiteacutee il ne peut pas reacutealiser des PID trop rapides ou trop complexes Il y a en particulier une limitation sur le nombre dimpulsions par seconde quil est capable de geacuterer

Le langage utiliseacute eacutetant le C il faut une licence du logiciel pour pouvoir modifier et recompiler le code source c Mais le projet se veut geacuteneacuterique Une version donneacutee pourra ecirctre utiliseacute sans recompilation en respectant quelques contraintes

d Asservissement

En fait on pourrait imaginer quil suffirait denvoyer au moteur une puissance constante pour quil tourne tout le temps agrave la mecircme vitesse Ce nest pas vrai du tout Tout dabord 2 moteurs dune mecircme seacuterie nauront pas forceacutement le mecircme comportement Ensuite parce que les niveaux de tension ou dautre diffeacuterences eacutelectriques peuvent jouer Enfin parce que des influences exteacuterieures (obstacles frein meacutecanique du robot) peuvent jouer

Du coup il est tregraves difficile de faire aller un moteur agrave la vitesse voulue Parfois ce nest pas gecircnant mais ccedila peut lecirctre Un exemple classique est le robot avec 2 roues motrices type char une configuration qui est tregraves courante Mais pour que ce robot aille droit il faut que les 2 moteurs aillent exactement agrave la mecircme vitesse

La solution est de faire un asservissement Cest a dire moduler dynamiquement la puissance envoyeacute aux moteurs suivant leur vitesse mesureacutee afin dadapter celle-ci agrave ce qui est deacutesireacuteeCela implique un eacuteleacutement tregraves important pour asservir il faut un capteur de vitesse du moteur En geacuteneacuteral il sagit dun compte-tour qui enverra N impulsions (ou pas) par tour de moteur Ensuite un programme va calculer en fonction de la vitesse mesureacutee du moteur la puissance agrave utiliser

Les asservissements sont constamment en train de chercher leacutequilibre Il faut bien comprendre quils mettent un certain temps agrave latteindre et ce dernier peut aussi ecirctre instable si lasservissement est mal reacutegleacute

Lasservissement quon va utiliser ici est un classique PIDou plus preacuteciseacutement un PI car pour des raisons de vitesses de traitement la composante deacuteriveacutee est laisseacutee de coteacute (mais rien de difficile agrave rajouter)

Le PID ou Proportionnel Inteacutegrale Deacuteriveacute est une meacutethode de calcul dasservissement

Soit Kp Ki et Kd les coefficients proportionnels inteacutegrale et deacuteriveacuteSoit e lerreur Vitesse mesureacutee moins vitesse demandeacuteeSoit Ti le terme inteacutegral dabord initialiseacute agrave 0

Consigne a appliquer (PWM) = Kp e + (1Ki) (Ti += e) + Kd (e - e(t-1))

On pourrait dire des pages et des pages sur le PID et ce nest pas mon but ici Merci de vous reporter au lien ci-dessous

Pour plus de deacutetails sur le PID la page de lANCR httpwwwancrorgfichtechactionpidindexhtmChez les Fribottes la Simulation de Jean-Claude httpwwwwikifreefrWiKiFriindexphpSimulateur20de20PID

e Le pic

Le PIC est un petit microcontrocircleur assez bon marche et simple a programmer comme a utiliser

La aussi je vais pas rentrer dans les deacutetails vous pouvez vous reporter agrave la bdtech du site Fribotte et en particulier aux cours de Bigonoff

Le PIC est ici programmeacute en C voir la page Fribotte ici Lutilisation du langage C permet dalleacuteger consideacuterablement le deacuteveloppement dune application compliqueacutee

2 Module AVR

httpwwwenseirbfr~matzfravrphp

Tregraves peu de renseignement sur ce module sinon ces informations drsquoun eacutetudiant de lrsquoEnseirb

Depuis plusieurs anneacutees je participe agrave la coupe de robotique E=M6 dont lobjectif pour chaque eacutequipe est de fabriquer un robot autonome devant se conformer agrave un regraveglement Pour plus dinfos vous pouvez vous rendre sur le site de mon eacutequipe Microb Technology ou bien sur le site de Planegravete Sciences lorganisme beacuteneacutevole qui organise cette compeacutetition

Jai deacutecouvert en 2001 les microcontrocircleurs Atmel AVR auxquels je me suis beaucoup attacheacute dune part parce quils sont assez performants pour des microcontrocircleurs 8 bits mais aussi et surtout car le fameux compilateur libre GCC est capable de compiler du code C pour ces petites becirctes Il existe de surcroicirct plusieurs outils libres permettant de les programmer de les simuler etc

Le but de ce projet est donc de deacutevelopper des modules servant dinterface geacuteneacuterique avec le hardware du microcontrocircleur quel que soit la version (par exemple les UART inclus dans les AVR AtMega sont diffeacuterents de ceux preacutesents dans les petits AVR) et de deacutevelopper des modules utiles pour certaines utilisations usuelles et pas seulement pour la coupe E=M6 (codage de hamming asservissement chiffrement etc)

Vous pouvez contacter leacutequipe de deacuteveloppement agrave avr-devdroids-corporg Pour le moment aucune release na eacuteteacute faite mais le travail est deacutejagrave bien avanceacute Chaque soir un screenshot du CVS est reacutealiseacute Il peut ne pas compiler mais normalement ccedila devrait fonctionner Voici le lien

3 Modules drsquoasservissement analogique laquo Escap raquo

Nous avons essayeacute de reacutecupeacuterer les cartes de commande Escap pour moteurs Escap qui avaient eacuteteacute utiliseacutees en 96 et 98 avec succegraves

Nous les avons monteacutes sur une base roulante qui pesait en tout 74 kgVoici grosso-modo leurs avantages et leurs inconveacutenients (pour les notices techniques voir le rapport 96 ou 98)

a Avantages

Cette carte inclut directement un asservissement avec correcteur PI la commande de puissance les ponts en H

Elle est tregraves facile agrave utiliser Elle est speacutecialement conccedilue pour les moteurs Escap que nous avons donc

parfaitement adapteacutee

b Inconveacutenients

Les moteurs ne fonctionnent correctement que sous 24v Les cartes et les moteurs semblent assez gourment Les cartes nantis de gros radiateurs sont relativement encombrantes Les tachymegravetres monteacutes sur les moteurs ne donnent pas une indication de position

mais de vitesse (qui plus est en analogique)

Nous avons preacutefeacutereacute refaire la partie commande car celle de 1996 souffrait de quelques deacutefauts (cf rapport 1996)

La conversion numeacuterique analogique

Pour reacutealiser la conversion numeacuterique analogique nous avons choisit un pont agrave reacutesistance R-2R

Nous pouvons consideacuterer que chaque bit est relieacute agrave un geacuteneacuterateur ideacuteal de tension (qui deacutelivre 0v ou 5v) Par conseacutequent la reacutesistance eacutequivalente quelque soit lrsquoeacutetat des bits et quelques soit le nombre de bits vue entre la sortie et la masse sera eacutegal agrave R

La tension Vs en fonction de lrsquoeacutetat des bits sera

Ce type de CAN eacutetant tregraves classique nous nrsquoindiquerons pas les deacutemonstrations toutefois vous pourrez les trouver tregraves facilement sur Internet ou sur le Cd-rom drsquoannexes joint au dossier

Le montage de Thevenin eacutequivalent est donc

Nous avons jugeacute qursquoune discreacutetisation sur 8 bits eacutetait un peu superflu crsquoest pourquoi nous nous contenterons de 4 bits (ce qui repreacutesentent quand mecircme 16 niveaux de vitesse)

bull Lrsquoadaptation du niveau de tension

Nous avons agrave la sortie du CAN une tension qui srsquoeacutetend de 0 agrave 5v or la commande des cartes Escap ce fait entre -5v et +5v

On peut voir cette adaptation comme lrsquoajout drsquoun offset de -25v et une amplification de gain 2

Voici le montage reacutealisant cette conversion

M1 est un montage suiveur qui lsquorecopiersquo la tension aux bornes de P1 mais sous une impeacutedance constante et eacutegale agrave 4R En 1996 lrsquoeacutequipe avait brancheacute P1 directement sur M3 mais cela a pour inconveacutenient de faire varier agrave la fois lrsquooffset et la penteLe potentiomegravetre P1 permet drsquoajuster lrsquooffset (permet par conseacutequent de reacutegler lrsquoarrecirct complet de moteur) (La valeur theacuteorique de lrsquooffset est 5V (cf formule en M3))

M2 est aussi un montage suiveur Le potentiomegravetre P2 permet drsquoajuster la pente (qui doit avoir un coefficient directeur de 2) Comme M2 est connecteacute au CAN dont la reacutesistance interne est de R P2 doit ecirctre a peut precirct eacutegal agrave R de la sorte la branche aura une reacutesistance eacutequivalente de 2R

M3 Sommateur (Vs = - 2 (Ve + Voffset))

Qursquoelle valeur choisir pour R

Theacuteoriquement on peut choisir nrsquoimporte quelle valeur pour R mais en pratique si R est trop petite une intensiteacute importante serait consommeacutee sans raison et si R est trop grande la forte impeacutedance du montage le rendra tregraves sensible aux parasites (secteur moteurshellip)Ce montage a eacuteteacute testeacute et fonctionne correctement pour R=5k les amplificateurs opeacuterationnels utiliseacutes sont des LM324 mais drsquoautres seraient tout agrave fait envisageables (peu de contraintes de vitesse et de tensions de deacutechets)

4 Conclusion

Nous avons preacutefeacutereacute ne pas utiliser les cartes Escap car les moteurs ne renvoient pas une position sous forme drsquoimpulsion mais une vitesse Etant donneacute que nous avions envisageacute un repeacuterage par odomeacutetrie cela compliquait consideacuterablement la tache

Toutefois il faut savoir que cette solution a eacuteteacute testeacutee et fonctionne tregraves bien (bonne preacutecision bonne dynamique) ainsi dans le cas ougrave le repeacuterage ne se fait pas par odomeacutetrie mais des balises exteacuterieures sachez que cette solution est tregraves pratique agrave utiliser En effet pour imposer une vitesse il suffit au microcontrocircleur drsquoappliquer sur un port un mot binaire correspondant agrave la vitesse voulue hellip et crsquoest tout La carte Escap se charge du reste

5 Carte drsquoasservissement numeacuterique laquo artisanale raquo

La carte reacutealiseacutee baseacutee sur un microcontrocircleur PIC 16F877A srsquoest aveacutereacutee fonctionnelle mais les tests drsquoalgorithmes drsquoasservissement nrsquoont pas eacuteteacute effectueacutesEn effet lrsquoutilisation de cette solution neacutecessite un microcontrocircleur deacutedieacute agrave lrsquoasservissement capable de communiquer via un protocole agrave deacutefinir avec la laquo carte megravere raquo (centralisant les retours des autres capteurs du robot et agissant sur les diffeacuterents actionneurs en fonction de la strateacutegie)Or afin de limiter le nombre de microcontrocircleurs sur le robot et du fait que lrsquoon dispose drsquoun budget suffisant nous avons deacutecideacute drsquoessayer drsquoutiliser des composants speacuteciaux reacutealisant lrsquoasservissement

Le systegraveme se deacutecompose en

- Un microcontrocircleur pour appliquer la PWM asservir et commander- Une carte de puissance pour chaque moteur baseacutee sur un LMD18200- Une carte compteur drsquoimpulsions pour les codeurs

Afin de favoriser lrsquointeractiviteacute et les reacuteglages jrsquoai ajouteacute une carte afficheur LCD avec 6 boutons sur la carte microcontrocircleur

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 22: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

De mecircme

+minus=

242412

343 xLxLxEIqY

On sait que bull E = 210 000 10^6bull Y = 1 10^-3 mbull Q = 555 Nmbull L = 027 m

bull12

3bhI = b = 006 m

+

minus

=24

22416

128

343 LL

LLL

EYqI

36

4

0010102100000601052155512timestimes

timestimes=minus

h

Et enfin on trouve h lrsquoeacutepaisseur de la platine h= 43 mm

Apregraves reacuteflexion nous nous sommes rendu compte que ce calcul nrsquoeacutetait pas rigoureux car nous avons consideacutereacute la theacuteorie des poutres or dans notre cas nous ne pouvons satisfaire cette theacuteorie (Longueur de la section = 10 x la largeur de la section)

Il nous faut donc utiliser un modegravele plus preacutecis crsquoest pourquoi nous avons deacutecideacute de faire un calcul par eacuteleacutements finis sous Ideacuteas Ainsi nous trouvons une eacutepaisseur h = 32 mm

Il nous faut donc une platine de plus de 3 mm Etant donneacute que la platine sera solidairement fixeacutee agrave la base du robot nous avons deacutecideacute de prendre une eacutepaisseur de platine de 2 mm et une eacutepaisseur de base de robot de 2 mm Nous obtenons donc une eacutepaisseur totale de 4 mm Ainsi nous devrions avoir sous une charge de 15 kg moins drsquoun millimegravetre de flexion de la base du robot

6 Reacutesultats

Assemblage en position horizontale

Vue eacuteclateacutee en position verticale

Photo de lrsquoassemblage roues ndash blocs moteurs ndash moteurs ndash platine

Partie C Lrsquoeacutelectronique20 Les batteries

Afin de pouvoir choisir les batteries approprieacutees agrave notre application nous devons dans un premier temps faire une estimation de la consommation drsquoeacutenergie totale avec les pointes de courant envisageacutees dans notre robotIl est agrave noter que nous ne connaissons pas encore en deacutetail tous les eacuteleacutements annexes qui seront implanteacutes dans le robot comme par exemple les capteurs et actionneurs diverses qui seront choisis en fonction des objectifs technologiques atteints ou non de lrsquoassociation et de la strateacutegie finaleDans le but de pouvoir utiliser agrave nouveau dans lrsquoavenir notre base roulante nous avons choisi de surestimer les besoins en eacutenergie de sorte agrave ne pas ecirctre pris au deacutepourvu

La consommation pourrait se deacutecomposer ainsi - 2 moteurs de 24V sous 21A soit 1008 Watts pendant 100 du temps- 3 actionneurs de 21 Watts chacun soit 63 Watts pendant 50 du temps- 3A pour lrsquoeacutelectronique sous 5V soit 15 Watts pendant 100 du temps (Asservissement carte de commandes capteurs)

Ce qui nous fait au total une consommation maximale ~180 WattsLa consommation permanente devrait ecirctre ~147 Watts permanents il faut donc que les batteries puissent deacutebiter un courant de ~6 A sous 24 V durant le fonctionnement du robot

Apregraves une longue recherche on a pu reacutealiser le tableau comparatif des batteries suivant

typeDensiteacute

deacutenergie (WhKg)

Densiteacute deacutenergie (WhL)

auto-deacutecharge (mois)

voltage dune cellule (V)

temps de charge rapide

plomb 35 111 5 agrave 10 2 8h agrave 15h

NiCd (Nickel Cadnium) 50 94 10 agrave 20 12 1h30min

NiMH (Nickel Metal Hydride) 80 135 20 agrave 30 13 2h agrave 4h

Lithium Ion 100 196 5 agrave 10 36 2h agrave 4h

Lithium polymer 150 200 5 agrave 10 36 2h agrave 4h

AlKaline rechargeable 80 15 2h agrave 3h

type

cycle de charge-deacutecharge avant

que capaciteacute passe de 100 agrave

80

Courant max Courant max pic effet meacutemoire estimation

(euroWh) prixcycles

plomb 200 agrave 300 02C 05C M 0895 0003

NiCd (Nickel Cadnium) 1500 1C 20C H 416 0003

NiMH (Nickel Metal Hydride) 300 agrave 500 05C 5C L 2 0004

Lithium Ion 500 agrave 1000 1C 2C L 8 0008

Lithium polymer 300 agrave 500 1C 2C agrave 5C L 32 0006

AlKaline rechargeable 50 02C 05C H 178 0036

Effet meacutemoire L (Low) M (Medium) H (High)Courant max C signifie capaciteacute par exemple une batterie qui peut deacutelivrer un courant max de 1C de 4Ah pourra donc deacutelivrer 4A au maximum sans risque de deacuteteacuterioration

Nous nous sommes inteacuteresseacutes au courant maximum et au temps de charge rapide pour notre choix de batteriesLe type de batterie qui semble le plus approprieacute pour nous est le type Nickel-Cadnium parfaitement adapteacute au pic drsquoappel de courant que provoquent des moteurs pouvant supporter des charges rapides en 1h30min seulement afin de devoir preacutevoir trop de jeux de batteries diffeacuterents

Les batteries LI-Ion ou LI-Polymer preacutesentent une densiteacute eacutenergeacutetique tregraves inteacuteressante mais leur prix est beaucoup plus eacuteleveacute agrave lrsquoachat et de plus dans notre application roulant sur un sol peu accidenteacute la masse pouvant ecirctre transporteacutee est suffisante pour le type NiCd

Les batteries LI-Ion ou LI-Polymer sont plus adapteacutees agrave lrsquoaeacuteromodeacutelisme ou au petit appareil eacutelectroniqueQuant aux batteries au plomb qui sont vraiment bon marcheacute le courant maximum supporteacute est trop faible est supposerait drsquoavoir une forte capaciteacute

Nous voulons avoir une autonomie de 30 minutes il nous faut donc une eacutenergie de 735 WhOr sous 24 V les batteries doivent avoir une capaciteacute de ~3 AhComme les batteries NiCd peuvent deacutebiter un courant maximum de 1C (une fois leur capaciteacute) nous devons donc prendre des batteries de 6Ah sous 24 V ce qui nous donnera une autonomie de 1 heure

Il faudra donc soit acheter un bloc accumulateur NiCd de 24 V 6 Ah srsquoil existe dans le commerce soit le reacutealiser nous mecircme en assemblant diffeacuterents eacuteleacutements

Rappelons que lrsquoassociation en seacuterie permet drsquoadditionner les tensions des eacuteleacutements associeacutes et que lrsquoassociation en parallegravele permet drsquoadditionner les courants deacutebiteacutes

Par exemple des eacuteleacutements de 12 V chacun pour 3 Ah srsquoassocieraient ainsi

Soit deux seacuteries de 20 eacuteleacutements eacutequivalentes agrave 24 V et faisant une capaciteacute de 3 Ah chacune

Il est possible de reacutepartir les accumulateurs en diffeacuterents paquets pour faciliter le rangement dans le robot ou reacutepartir la masse ou eacuteventuellement trouver des packs dans le commerce

Dans le cas de lrsquoUV PR le choix des batteries reste pour le moment sur les NiCd mais pour les essais pratiques on utilisera des batteries au plomb que lrsquoon possegravede deacutejagrave drsquoautant plus que les essais sont reacutealiseacutes avec les moteurs de propulsion et lrsquoasservissement seul ce qui

neacutecessite un deacutebit de courant de 24105 = 4375 A sur 2 batteries soit asymp2187 A

Comme les batteries au plomb peuvent deacutebiter 02C il nous en faudrait des de asymp 109 Ah

Or les essais de la base roulante ne seront que de courtes dureacutees et lrsquoon se contentera donc drsquoutiliser des batteries de 6 Ah pour des raisons de volume mecircme si elles ne sont pas vraiment bien dimensionneacutees

21 La commande des moteurs

Dans un premier temps nous verrons un bref reacutecapitulatif des cartes et modules drsquoasservissement du commerce

Pour la commande les moteurs plusieurs solutions ont eacuteteacute envisageacutees - Un asservissement lsquotout faitrsquo analogique modules laquo Escap raquo- Une solution lsquoartisanalersquo carte avec asservissement numeacuterique- Un asservissement lsquotout faitrsquo numeacuterique circuits laquo LM629 raquo

a Comparatifs des modules drsquoasservissement et calcul des correcteurs

Veille technologique sur les systegravemes drsquoasservissement utiliseacutes par les diffeacuterentes eacutecoles de la coupe E= M6

Le but de cette partie est drsquoeacutetudier les principales techniques drsquoasservissement utiliseacutees par les eacutecoles de la Coupe E=M6 Ce document est loin drsquoecirctre exhaustif et servira de base agrave compleacuteter et actualiser pour les semestres et eacutequipes prochaines

Apregraves une eacutetude sur plus drsquoune trentaine drsquoeacutecoles il ressort trois formes drsquoasservissement la plus utiliseacutee agrave 85 est du type PID en majoriteacute reacuteduit au PI ensuite viennent les microcontrocircleurs PIC associeacutes au PID et les modules AVR nous allons par la suite deacutetailler ces trois solutions Il existe eacutegalement des systegravemes de controcircle dits agrave retour drsquoeacutetat jamais utiliseacutes jusqursquoagrave preacutesent pour la Coupe crsquoest pourquoi nous ne deacutevelopperons pas son approche

3 Systegraveme PID

httpwwwancrorgfichtechactionpidindexhtm

a Principe

Pour pouvoir tester un asservissement il faut dabord reacutealiser une plate-forme de deacuteveloppement le plus geacuteneacuteralement du type suivant Mais pour commencer un brin de theacuteorie illustreacute par des exemples Le scheacutema de principe est repreacutesenteacute ci-dessous

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

Nous avons bien un scheacutema en boucle fermeacutee puisque la sortie du systegraveme est reacuteinjecteacutee dans lentreacutee Les trois blocs bleus correspondent chacun agrave une fonctionnaliteacute Ki est le coefficient inteacutegral Kp le coefficient proportionnel et Kd le coefficient deacuteriveacute Chacun de ces coefficients a une fonctionnaliteacute bien preacutecise Commenccedilons par le plus simple le proportionnel

b Asservissement P

Lasservissement proportionnel est essentiel au fonctionnement du PID Il permet essentiellement de donner de la puissance au moteur Voici quelques reacutesultats dexpeacuterimentations avec Ki=0 et Kd=0

La courbe noire repreacutesente la consigne que lon deacutesire atteindre (Ud) cest un eacutechelon de valeur 32 La courbe bleue repreacutesente la vitesse reacuteelle du systegraveme (Y) Comme vous pouvez le constater plus Kp est grand plus le systegraveme converge vite vers sa valeur finale Mais en contrepartie pour des valeurs de Kp trop grandes le systegraveme oscille Mais lagrave nest pas notre plus gros problegraveme en effet sur ces courbes on voit nettement que la vitesse du moteur natteint jamais la vitesse deacutesireacutee Cest ce que lon appelle lerreur statique elle correspond agrave la diffeacuterence entre la vitesse reacuteelle et la vitesse deacutesireacutee en reacutegime eacutetablie (une fois que le systegraveme sest stabiliseacute) Pour compenser cette erreur statique on rajoute le terme inteacutegral

c Asservissement PI

Le correcteur inteacutegral sert principalement agrave supprimer lerreur statique Lideacutee principale est de charger ou inteacutegrer lerreur depuis le deacutebut et dajouter cette erreur agrave la consigne jusquagrave ce quelle devienne nulle Lorsque cette erreur est nulle le terme inteacutegral se stabilise et il compense parfaitement lerreur entre la consigne et la vitesse reacuteelle Deacutemonstration en image

On voit cette fois-ci que le terme inteacutegral a bien fonctionneacute et que lerreur statique est nulle On constate aussi que plus le gain Ki est grand plus le systegraveme converge vite En revanche plus Ki est grand plus le systegraveme oscille et plus le deacutepassement est grand Sur des asservissements en position le terme deacuteriveacute permet de diminuer le deacutepassement et les oscillations Nous allons voir que dans notre cas nous avons quelques problegravemes

d Asservissement PID ou agrave avance de phase

On a donc rajouteacute le terme deacuteriveacute comme tout bon livre dautomatique le preacuteconise et voici les reacutesultats

Cette fois ci jai choisi de repreacutesenter la tension appliqueacutee au moteur (U) le problegraveme est bien plus flagrant ici Vous voyez que lorsque lon ajoute le terme deacuteriveacute la commande est extrecircmement bruiteacutee En reacutealiteacute on somme agrave la commande la deacuteriveacutee de la vitesse reacuteelle que lon multiplie par un gain Kd La deacuteriveacutee dune vitesse est une acceacuteleacuteration cela signifie que lon amplifie tous les bruits dacceacuteleacuteration et en plus on les multiplient par un gain Kd Donc rajoute du bruit amplifieacute dans la commande Alors pourquoi mettent t-ils ce terme deacuteriveacutee dans les livres Simplement parce que ce bruit est typique des asservissement en vitesse Sur des asservissements en position ce problegraveme est moins freacutequent car la deacuteriveacutee de la position est la vitesse

Ici le problegraveme eacutetait visible parce que nous avons reacutealiseacute toutes ces courbes sur un systegraveme reacuteel Si nous avions simuleacute ces reacutesultats lacceacuteleacuteration naurait pas eacuteteacute bruiteacutee et les courbes auraient eacuteteacute parfaites Pour impleacutementer ce PID sur notre robot il a fallu programmer en numeacuterique une deacuteriveacutee et une inteacutegrale

e PID numeacuterique et reacuteglage

Notre premier problegraveme est de programmer le terme inteacutegral Il existe une meacutethode qui consiste agrave estimer la surface entre deux eacutechantillons mais dans notre cas nous avons des problegravemes dus aux bruits et agrave la freacutequence deacutechantillonnage Alors il faut sommer toutes les erreurs depuis de deacutebut

Notre second problegraveme est de programmer le terme deacuteriveacute La meacutethode ici est de calculer la pente entre deux eacutechantillons de e Theacuteoriquement cela revient agrave faire le calcul suivant

Avec la peacuteriode deacutechantillonnage Pour faire un asservissement numeacuterique il faut impeacuterativement avoir une peacuteriode fixe Pour gagner du temps de calcul geacuteneacuteralement on inteacutegre directement dans le gain Kd

Voici un lalgorithme exemple

Ti = 0 Initialise le terme inteacutegral

for ( i=1 i lt= Nb_cycles i++ )

Init_timers (1) Initialise le timer agrave notre peacuteriode 1 ms

Y = Codeur () Stoque la valeur du codeur dans Y Rst_codeur () Remet le codeur agrave zeacutero Ud = Consigne () Mise agrave jour de la consigne e_old=e Stoque e(t-1) e = Ud - Y Calcul de lerreur Ti = Ti + e Calcul de linteacutegral Calcul du PID U = Kp e Terme proportionnel

+ Ki Ti Terme inteacutegral + Kd ( e - e_old ) Terme deacuteriveacute Moteur (U) On applique la consigne

while ( end_timer() ) On attend la fin de la peacuteriode

Pour le reacuteglage des gains Kp Ki et Kd il existe diffeacuterentes meacutethodes Ici nous lavons fait de maniegravere empirique et le reacutesultats est plutocirct bon Linconveacutenient de ces meacutethodes est quelles demandent un modegravele du systegraveme ce qui est geacuteneacuteralement dur agrave produire Il existe

aussi des composants programmables qui permettent de faire directement lasservissement numeacuterique (HCTL 1100 LM629) Ils sont exactement baseacutes sur la meacutethode preacutesenteacutee ici

Pour ce qui est du reacuteglage des correcteurs lrsquooptimal est drsquoutiliser la meacutethode de lrsquooptimum dissymeacutetrique une fois que lrsquoon agrave reacutealiseacute le modegravele du systegraveme La plus part des eacutecoles ne reacutealisent pas ce modegravele et ce limite donc agrave une correction empirique en reacutealisant des tests ou en utilisant la meacutethode Ziegler-Nichols agrave partir de la reacuteponse agrave un eacutechelon de tension

Par la suite nous rappellerons les meacutethodes de Ziegler-Nichols et de lrsquooptimum dissymeacutetrique

f Les meacutethodes de Ziegler-Nichols

Ces meacutethodes fournissent des reacuteglages pour des correcteurs de type PID (pouvant ne comporter quune action Proportionnelle une action Proportionnelle et une action Inteacutegrale ou les 3 actions simultaneacutement) dont la structure est la suivante

bull MEacuteTHODE DE ZIEGLER NICHOLS TEMPORELLE

Elle est adapteacutee aux systegravemes stables en boucle ouverte qui ont une reacuteponse apeacuteriodique La reacuteponse agrave un eacutechelon unitaire du systegraveme physique doit ecirctre enregistreacutee Diffeacuterentes caracteacuteristiques de la reacuteponse obtenue sont mesureacutees

Le modegravele approcheacute utiliseacutee par Ziegler Nichols comporte une constante de temps et un retard pur ou bien un retard pur et un inteacutegrateur

Si le systegraveme physique comporte un inteacutegrateur les mesures de a et de L demeurent disponibles sur le deacutebut de la reacuteponse

Les reacuteglages suggeacutereacutes par la meacutethode temporelle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 1a - -correcteur PI 09a 3L -

correcteur PID 12a 2L L2Concernant le raffinement des reacuteglages augmenter Kp ou diminuer Ti augment les

oscillations de la sortie

bull MEacuteTHODE DE ZIEGLER NICHOLS FREacuteQUENTIELLE

Cette meacutethode convient particuliegraverement bien aux systegravemes instables en boucle ouverte pour lesquels la meacutethode temporelle nest pas envisageable Lexpeacuterimentation se fait sur le systegraveme boucleacute avec un simple gain proportionnel qui doit ecirctre stable Le principe est de modifier la valeur du gain par essai-erreur jusquagrave atteindre la limite de stabiliteacute (pheacutenomegravene de pompage) Il reste agrave relever le gain limite K0 obtenu et agrave mesurer la peacuteriode T0 des oscillations de la reacuteponse obtenue

Les reacuteglages suggeacutereacutes par la meacutethode freacutequentielle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 05 K0 - -correcteur PI 045 K0 08 T0 -

correcteur PID 06 K0 05 T0 0125 T0

A la page Internet suivante vous trouverez un simulateur de cette meacutethode

httpwww-hadocensieginpgfrhadocateliersreglageEmpCorrReglEmpCorrDroithtml

g Meacutethode de lrsquooptimum dyssimeacutetique (voir poly MC06 Chap 5 et 8)

Cette meacutethode srsquoapplique une fois le modegravele reacutealiseacute et mis sous la forme drsquoun second ordre

et on obtient le correcteur PI

pour une surtension deacutesireacutee QdB

Q = 10^(QdB20)λ= radic(Qsup2(Qsup2-1))Δφ = arcos (1 λ)α= ((1+sin(Δφ))cos(Δφ))sup2ωN= ωQαω0= ωQradicαKP= ω0 λ KQ

4 Les microcontrocircleurs

a Avant propos

Cette fiche se veut ecirctre sous la forme dun projet Un projet non termineacute ougrave chacun peut apporter sa contribution (ameacuteliorations adaptations corrections etc)De ce fait ces pages sont ameneacutees agrave eacutevoluer et vous-mecircme pourrez participer agrave leur eacutevolution

Pourquoi avoir choisit un tel mode de travail Tout simplement parce que le sujet est vaste et que des variations sont possibles suivant lutilisation quen feront les diffeacuterentes personnes

Le but de ce projet est de reacutealiser une double asservissement de vitesse (type PID) de deux moteurs sur un seul PIC (type 16F877) Lutiliteacute majeure eacutetant de faire rouler un robot bien droit et agrave la bonne vitesse A quoi ccedila sert plus preacuteciseacutement

Avec un seul PIC ce projet permet aux roboticiens amateurs et chevronneacutes de reacutealiser facilement leur asservissement de vitesse de moteurs agrave courant continu (en geacuteneacuteral les moteurs de propulsions de leur robot mais ccedila peut ecirctre bien sucircr dautres moteurs) La commande de lasservissement pourra se faire agrave terme en liaison seacuterie (deacutejagrave fait) I2C ou par bus ISA

b Avantages

Il existe bien sucircr dautres systegravemes qui gegraverent un asservissement de vitesses Des systegravemes professionnels existent comme les LM629 Ils ont linconveacutenient decirctre cher (et ce pour un seul moteur) et relativement complexes

Pourquoi chercher un fusil pour chasser des moustiques Le double asservissement sur PIC vous coucircte le prix dun PIC soit environ 15Euro pour un 16F877 actuellement et ce pour 2 moteurs Ce double asservissement se veut relativement simple De plus vous pouvez en modifier le programme et ladapter agrave vos besoins

c Inconveacutenients

Les personnes qui auront les moyens preacutefeacutererons opter pour un systegraveme professionnel certainement pour des raisons de fiabiliteacute mais cest agrave leurs risques et peacuterils -)La puissance du PIC eacutetant limiteacutee il ne peut pas reacutealiser des PID trop rapides ou trop complexes Il y a en particulier une limitation sur le nombre dimpulsions par seconde quil est capable de geacuterer

Le langage utiliseacute eacutetant le C il faut une licence du logiciel pour pouvoir modifier et recompiler le code source c Mais le projet se veut geacuteneacuterique Une version donneacutee pourra ecirctre utiliseacute sans recompilation en respectant quelques contraintes

d Asservissement

En fait on pourrait imaginer quil suffirait denvoyer au moteur une puissance constante pour quil tourne tout le temps agrave la mecircme vitesse Ce nest pas vrai du tout Tout dabord 2 moteurs dune mecircme seacuterie nauront pas forceacutement le mecircme comportement Ensuite parce que les niveaux de tension ou dautre diffeacuterences eacutelectriques peuvent jouer Enfin parce que des influences exteacuterieures (obstacles frein meacutecanique du robot) peuvent jouer

Du coup il est tregraves difficile de faire aller un moteur agrave la vitesse voulue Parfois ce nest pas gecircnant mais ccedila peut lecirctre Un exemple classique est le robot avec 2 roues motrices type char une configuration qui est tregraves courante Mais pour que ce robot aille droit il faut que les 2 moteurs aillent exactement agrave la mecircme vitesse

La solution est de faire un asservissement Cest a dire moduler dynamiquement la puissance envoyeacute aux moteurs suivant leur vitesse mesureacutee afin dadapter celle-ci agrave ce qui est deacutesireacuteeCela implique un eacuteleacutement tregraves important pour asservir il faut un capteur de vitesse du moteur En geacuteneacuteral il sagit dun compte-tour qui enverra N impulsions (ou pas) par tour de moteur Ensuite un programme va calculer en fonction de la vitesse mesureacutee du moteur la puissance agrave utiliser

Les asservissements sont constamment en train de chercher leacutequilibre Il faut bien comprendre quils mettent un certain temps agrave latteindre et ce dernier peut aussi ecirctre instable si lasservissement est mal reacutegleacute

Lasservissement quon va utiliser ici est un classique PIDou plus preacuteciseacutement un PI car pour des raisons de vitesses de traitement la composante deacuteriveacutee est laisseacutee de coteacute (mais rien de difficile agrave rajouter)

Le PID ou Proportionnel Inteacutegrale Deacuteriveacute est une meacutethode de calcul dasservissement

Soit Kp Ki et Kd les coefficients proportionnels inteacutegrale et deacuteriveacuteSoit e lerreur Vitesse mesureacutee moins vitesse demandeacuteeSoit Ti le terme inteacutegral dabord initialiseacute agrave 0

Consigne a appliquer (PWM) = Kp e + (1Ki) (Ti += e) + Kd (e - e(t-1))

On pourrait dire des pages et des pages sur le PID et ce nest pas mon but ici Merci de vous reporter au lien ci-dessous

Pour plus de deacutetails sur le PID la page de lANCR httpwwwancrorgfichtechactionpidindexhtmChez les Fribottes la Simulation de Jean-Claude httpwwwwikifreefrWiKiFriindexphpSimulateur20de20PID

e Le pic

Le PIC est un petit microcontrocircleur assez bon marche et simple a programmer comme a utiliser

La aussi je vais pas rentrer dans les deacutetails vous pouvez vous reporter agrave la bdtech du site Fribotte et en particulier aux cours de Bigonoff

Le PIC est ici programmeacute en C voir la page Fribotte ici Lutilisation du langage C permet dalleacuteger consideacuterablement le deacuteveloppement dune application compliqueacutee

2 Module AVR

httpwwwenseirbfr~matzfravrphp

Tregraves peu de renseignement sur ce module sinon ces informations drsquoun eacutetudiant de lrsquoEnseirb

Depuis plusieurs anneacutees je participe agrave la coupe de robotique E=M6 dont lobjectif pour chaque eacutequipe est de fabriquer un robot autonome devant se conformer agrave un regraveglement Pour plus dinfos vous pouvez vous rendre sur le site de mon eacutequipe Microb Technology ou bien sur le site de Planegravete Sciences lorganisme beacuteneacutevole qui organise cette compeacutetition

Jai deacutecouvert en 2001 les microcontrocircleurs Atmel AVR auxquels je me suis beaucoup attacheacute dune part parce quils sont assez performants pour des microcontrocircleurs 8 bits mais aussi et surtout car le fameux compilateur libre GCC est capable de compiler du code C pour ces petites becirctes Il existe de surcroicirct plusieurs outils libres permettant de les programmer de les simuler etc

Le but de ce projet est donc de deacutevelopper des modules servant dinterface geacuteneacuterique avec le hardware du microcontrocircleur quel que soit la version (par exemple les UART inclus dans les AVR AtMega sont diffeacuterents de ceux preacutesents dans les petits AVR) et de deacutevelopper des modules utiles pour certaines utilisations usuelles et pas seulement pour la coupe E=M6 (codage de hamming asservissement chiffrement etc)

Vous pouvez contacter leacutequipe de deacuteveloppement agrave avr-devdroids-corporg Pour le moment aucune release na eacuteteacute faite mais le travail est deacutejagrave bien avanceacute Chaque soir un screenshot du CVS est reacutealiseacute Il peut ne pas compiler mais normalement ccedila devrait fonctionner Voici le lien

3 Modules drsquoasservissement analogique laquo Escap raquo

Nous avons essayeacute de reacutecupeacuterer les cartes de commande Escap pour moteurs Escap qui avaient eacuteteacute utiliseacutees en 96 et 98 avec succegraves

Nous les avons monteacutes sur une base roulante qui pesait en tout 74 kgVoici grosso-modo leurs avantages et leurs inconveacutenients (pour les notices techniques voir le rapport 96 ou 98)

a Avantages

Cette carte inclut directement un asservissement avec correcteur PI la commande de puissance les ponts en H

Elle est tregraves facile agrave utiliser Elle est speacutecialement conccedilue pour les moteurs Escap que nous avons donc

parfaitement adapteacutee

b Inconveacutenients

Les moteurs ne fonctionnent correctement que sous 24v Les cartes et les moteurs semblent assez gourment Les cartes nantis de gros radiateurs sont relativement encombrantes Les tachymegravetres monteacutes sur les moteurs ne donnent pas une indication de position

mais de vitesse (qui plus est en analogique)

Nous avons preacutefeacutereacute refaire la partie commande car celle de 1996 souffrait de quelques deacutefauts (cf rapport 1996)

La conversion numeacuterique analogique

Pour reacutealiser la conversion numeacuterique analogique nous avons choisit un pont agrave reacutesistance R-2R

Nous pouvons consideacuterer que chaque bit est relieacute agrave un geacuteneacuterateur ideacuteal de tension (qui deacutelivre 0v ou 5v) Par conseacutequent la reacutesistance eacutequivalente quelque soit lrsquoeacutetat des bits et quelques soit le nombre de bits vue entre la sortie et la masse sera eacutegal agrave R

La tension Vs en fonction de lrsquoeacutetat des bits sera

Ce type de CAN eacutetant tregraves classique nous nrsquoindiquerons pas les deacutemonstrations toutefois vous pourrez les trouver tregraves facilement sur Internet ou sur le Cd-rom drsquoannexes joint au dossier

Le montage de Thevenin eacutequivalent est donc

Nous avons jugeacute qursquoune discreacutetisation sur 8 bits eacutetait un peu superflu crsquoest pourquoi nous nous contenterons de 4 bits (ce qui repreacutesentent quand mecircme 16 niveaux de vitesse)

bull Lrsquoadaptation du niveau de tension

Nous avons agrave la sortie du CAN une tension qui srsquoeacutetend de 0 agrave 5v or la commande des cartes Escap ce fait entre -5v et +5v

On peut voir cette adaptation comme lrsquoajout drsquoun offset de -25v et une amplification de gain 2

Voici le montage reacutealisant cette conversion

M1 est un montage suiveur qui lsquorecopiersquo la tension aux bornes de P1 mais sous une impeacutedance constante et eacutegale agrave 4R En 1996 lrsquoeacutequipe avait brancheacute P1 directement sur M3 mais cela a pour inconveacutenient de faire varier agrave la fois lrsquooffset et la penteLe potentiomegravetre P1 permet drsquoajuster lrsquooffset (permet par conseacutequent de reacutegler lrsquoarrecirct complet de moteur) (La valeur theacuteorique de lrsquooffset est 5V (cf formule en M3))

M2 est aussi un montage suiveur Le potentiomegravetre P2 permet drsquoajuster la pente (qui doit avoir un coefficient directeur de 2) Comme M2 est connecteacute au CAN dont la reacutesistance interne est de R P2 doit ecirctre a peut precirct eacutegal agrave R de la sorte la branche aura une reacutesistance eacutequivalente de 2R

M3 Sommateur (Vs = - 2 (Ve + Voffset))

Qursquoelle valeur choisir pour R

Theacuteoriquement on peut choisir nrsquoimporte quelle valeur pour R mais en pratique si R est trop petite une intensiteacute importante serait consommeacutee sans raison et si R est trop grande la forte impeacutedance du montage le rendra tregraves sensible aux parasites (secteur moteurshellip)Ce montage a eacuteteacute testeacute et fonctionne correctement pour R=5k les amplificateurs opeacuterationnels utiliseacutes sont des LM324 mais drsquoautres seraient tout agrave fait envisageables (peu de contraintes de vitesse et de tensions de deacutechets)

4 Conclusion

Nous avons preacutefeacutereacute ne pas utiliser les cartes Escap car les moteurs ne renvoient pas une position sous forme drsquoimpulsion mais une vitesse Etant donneacute que nous avions envisageacute un repeacuterage par odomeacutetrie cela compliquait consideacuterablement la tache

Toutefois il faut savoir que cette solution a eacuteteacute testeacutee et fonctionne tregraves bien (bonne preacutecision bonne dynamique) ainsi dans le cas ougrave le repeacuterage ne se fait pas par odomeacutetrie mais des balises exteacuterieures sachez que cette solution est tregraves pratique agrave utiliser En effet pour imposer une vitesse il suffit au microcontrocircleur drsquoappliquer sur un port un mot binaire correspondant agrave la vitesse voulue hellip et crsquoest tout La carte Escap se charge du reste

5 Carte drsquoasservissement numeacuterique laquo artisanale raquo

La carte reacutealiseacutee baseacutee sur un microcontrocircleur PIC 16F877A srsquoest aveacutereacutee fonctionnelle mais les tests drsquoalgorithmes drsquoasservissement nrsquoont pas eacuteteacute effectueacutesEn effet lrsquoutilisation de cette solution neacutecessite un microcontrocircleur deacutedieacute agrave lrsquoasservissement capable de communiquer via un protocole agrave deacutefinir avec la laquo carte megravere raquo (centralisant les retours des autres capteurs du robot et agissant sur les diffeacuterents actionneurs en fonction de la strateacutegie)Or afin de limiter le nombre de microcontrocircleurs sur le robot et du fait que lrsquoon dispose drsquoun budget suffisant nous avons deacutecideacute drsquoessayer drsquoutiliser des composants speacuteciaux reacutealisant lrsquoasservissement

Le systegraveme se deacutecompose en

- Un microcontrocircleur pour appliquer la PWM asservir et commander- Une carte de puissance pour chaque moteur baseacutee sur un LMD18200- Une carte compteur drsquoimpulsions pour les codeurs

Afin de favoriser lrsquointeractiviteacute et les reacuteglages jrsquoai ajouteacute une carte afficheur LCD avec 6 boutons sur la carte microcontrocircleur

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 23: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

6 Reacutesultats

Assemblage en position horizontale

Vue eacuteclateacutee en position verticale

Photo de lrsquoassemblage roues ndash blocs moteurs ndash moteurs ndash platine

Partie C Lrsquoeacutelectronique20 Les batteries

Afin de pouvoir choisir les batteries approprieacutees agrave notre application nous devons dans un premier temps faire une estimation de la consommation drsquoeacutenergie totale avec les pointes de courant envisageacutees dans notre robotIl est agrave noter que nous ne connaissons pas encore en deacutetail tous les eacuteleacutements annexes qui seront implanteacutes dans le robot comme par exemple les capteurs et actionneurs diverses qui seront choisis en fonction des objectifs technologiques atteints ou non de lrsquoassociation et de la strateacutegie finaleDans le but de pouvoir utiliser agrave nouveau dans lrsquoavenir notre base roulante nous avons choisi de surestimer les besoins en eacutenergie de sorte agrave ne pas ecirctre pris au deacutepourvu

La consommation pourrait se deacutecomposer ainsi - 2 moteurs de 24V sous 21A soit 1008 Watts pendant 100 du temps- 3 actionneurs de 21 Watts chacun soit 63 Watts pendant 50 du temps- 3A pour lrsquoeacutelectronique sous 5V soit 15 Watts pendant 100 du temps (Asservissement carte de commandes capteurs)

Ce qui nous fait au total une consommation maximale ~180 WattsLa consommation permanente devrait ecirctre ~147 Watts permanents il faut donc que les batteries puissent deacutebiter un courant de ~6 A sous 24 V durant le fonctionnement du robot

Apregraves une longue recherche on a pu reacutealiser le tableau comparatif des batteries suivant

typeDensiteacute

deacutenergie (WhKg)

Densiteacute deacutenergie (WhL)

auto-deacutecharge (mois)

voltage dune cellule (V)

temps de charge rapide

plomb 35 111 5 agrave 10 2 8h agrave 15h

NiCd (Nickel Cadnium) 50 94 10 agrave 20 12 1h30min

NiMH (Nickel Metal Hydride) 80 135 20 agrave 30 13 2h agrave 4h

Lithium Ion 100 196 5 agrave 10 36 2h agrave 4h

Lithium polymer 150 200 5 agrave 10 36 2h agrave 4h

AlKaline rechargeable 80 15 2h agrave 3h

type

cycle de charge-deacutecharge avant

que capaciteacute passe de 100 agrave

80

Courant max Courant max pic effet meacutemoire estimation

(euroWh) prixcycles

plomb 200 agrave 300 02C 05C M 0895 0003

NiCd (Nickel Cadnium) 1500 1C 20C H 416 0003

NiMH (Nickel Metal Hydride) 300 agrave 500 05C 5C L 2 0004

Lithium Ion 500 agrave 1000 1C 2C L 8 0008

Lithium polymer 300 agrave 500 1C 2C agrave 5C L 32 0006

AlKaline rechargeable 50 02C 05C H 178 0036

Effet meacutemoire L (Low) M (Medium) H (High)Courant max C signifie capaciteacute par exemple une batterie qui peut deacutelivrer un courant max de 1C de 4Ah pourra donc deacutelivrer 4A au maximum sans risque de deacuteteacuterioration

Nous nous sommes inteacuteresseacutes au courant maximum et au temps de charge rapide pour notre choix de batteriesLe type de batterie qui semble le plus approprieacute pour nous est le type Nickel-Cadnium parfaitement adapteacute au pic drsquoappel de courant que provoquent des moteurs pouvant supporter des charges rapides en 1h30min seulement afin de devoir preacutevoir trop de jeux de batteries diffeacuterents

Les batteries LI-Ion ou LI-Polymer preacutesentent une densiteacute eacutenergeacutetique tregraves inteacuteressante mais leur prix est beaucoup plus eacuteleveacute agrave lrsquoachat et de plus dans notre application roulant sur un sol peu accidenteacute la masse pouvant ecirctre transporteacutee est suffisante pour le type NiCd

Les batteries LI-Ion ou LI-Polymer sont plus adapteacutees agrave lrsquoaeacuteromodeacutelisme ou au petit appareil eacutelectroniqueQuant aux batteries au plomb qui sont vraiment bon marcheacute le courant maximum supporteacute est trop faible est supposerait drsquoavoir une forte capaciteacute

Nous voulons avoir une autonomie de 30 minutes il nous faut donc une eacutenergie de 735 WhOr sous 24 V les batteries doivent avoir une capaciteacute de ~3 AhComme les batteries NiCd peuvent deacutebiter un courant maximum de 1C (une fois leur capaciteacute) nous devons donc prendre des batteries de 6Ah sous 24 V ce qui nous donnera une autonomie de 1 heure

Il faudra donc soit acheter un bloc accumulateur NiCd de 24 V 6 Ah srsquoil existe dans le commerce soit le reacutealiser nous mecircme en assemblant diffeacuterents eacuteleacutements

Rappelons que lrsquoassociation en seacuterie permet drsquoadditionner les tensions des eacuteleacutements associeacutes et que lrsquoassociation en parallegravele permet drsquoadditionner les courants deacutebiteacutes

Par exemple des eacuteleacutements de 12 V chacun pour 3 Ah srsquoassocieraient ainsi

Soit deux seacuteries de 20 eacuteleacutements eacutequivalentes agrave 24 V et faisant une capaciteacute de 3 Ah chacune

Il est possible de reacutepartir les accumulateurs en diffeacuterents paquets pour faciliter le rangement dans le robot ou reacutepartir la masse ou eacuteventuellement trouver des packs dans le commerce

Dans le cas de lrsquoUV PR le choix des batteries reste pour le moment sur les NiCd mais pour les essais pratiques on utilisera des batteries au plomb que lrsquoon possegravede deacutejagrave drsquoautant plus que les essais sont reacutealiseacutes avec les moteurs de propulsion et lrsquoasservissement seul ce qui

neacutecessite un deacutebit de courant de 24105 = 4375 A sur 2 batteries soit asymp2187 A

Comme les batteries au plomb peuvent deacutebiter 02C il nous en faudrait des de asymp 109 Ah

Or les essais de la base roulante ne seront que de courtes dureacutees et lrsquoon se contentera donc drsquoutiliser des batteries de 6 Ah pour des raisons de volume mecircme si elles ne sont pas vraiment bien dimensionneacutees

21 La commande des moteurs

Dans un premier temps nous verrons un bref reacutecapitulatif des cartes et modules drsquoasservissement du commerce

Pour la commande les moteurs plusieurs solutions ont eacuteteacute envisageacutees - Un asservissement lsquotout faitrsquo analogique modules laquo Escap raquo- Une solution lsquoartisanalersquo carte avec asservissement numeacuterique- Un asservissement lsquotout faitrsquo numeacuterique circuits laquo LM629 raquo

a Comparatifs des modules drsquoasservissement et calcul des correcteurs

Veille technologique sur les systegravemes drsquoasservissement utiliseacutes par les diffeacuterentes eacutecoles de la coupe E= M6

Le but de cette partie est drsquoeacutetudier les principales techniques drsquoasservissement utiliseacutees par les eacutecoles de la Coupe E=M6 Ce document est loin drsquoecirctre exhaustif et servira de base agrave compleacuteter et actualiser pour les semestres et eacutequipes prochaines

Apregraves une eacutetude sur plus drsquoune trentaine drsquoeacutecoles il ressort trois formes drsquoasservissement la plus utiliseacutee agrave 85 est du type PID en majoriteacute reacuteduit au PI ensuite viennent les microcontrocircleurs PIC associeacutes au PID et les modules AVR nous allons par la suite deacutetailler ces trois solutions Il existe eacutegalement des systegravemes de controcircle dits agrave retour drsquoeacutetat jamais utiliseacutes jusqursquoagrave preacutesent pour la Coupe crsquoest pourquoi nous ne deacutevelopperons pas son approche

3 Systegraveme PID

httpwwwancrorgfichtechactionpidindexhtm

a Principe

Pour pouvoir tester un asservissement il faut dabord reacutealiser une plate-forme de deacuteveloppement le plus geacuteneacuteralement du type suivant Mais pour commencer un brin de theacuteorie illustreacute par des exemples Le scheacutema de principe est repreacutesenteacute ci-dessous

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

Nous avons bien un scheacutema en boucle fermeacutee puisque la sortie du systegraveme est reacuteinjecteacutee dans lentreacutee Les trois blocs bleus correspondent chacun agrave une fonctionnaliteacute Ki est le coefficient inteacutegral Kp le coefficient proportionnel et Kd le coefficient deacuteriveacute Chacun de ces coefficients a une fonctionnaliteacute bien preacutecise Commenccedilons par le plus simple le proportionnel

b Asservissement P

Lasservissement proportionnel est essentiel au fonctionnement du PID Il permet essentiellement de donner de la puissance au moteur Voici quelques reacutesultats dexpeacuterimentations avec Ki=0 et Kd=0

La courbe noire repreacutesente la consigne que lon deacutesire atteindre (Ud) cest un eacutechelon de valeur 32 La courbe bleue repreacutesente la vitesse reacuteelle du systegraveme (Y) Comme vous pouvez le constater plus Kp est grand plus le systegraveme converge vite vers sa valeur finale Mais en contrepartie pour des valeurs de Kp trop grandes le systegraveme oscille Mais lagrave nest pas notre plus gros problegraveme en effet sur ces courbes on voit nettement que la vitesse du moteur natteint jamais la vitesse deacutesireacutee Cest ce que lon appelle lerreur statique elle correspond agrave la diffeacuterence entre la vitesse reacuteelle et la vitesse deacutesireacutee en reacutegime eacutetablie (une fois que le systegraveme sest stabiliseacute) Pour compenser cette erreur statique on rajoute le terme inteacutegral

c Asservissement PI

Le correcteur inteacutegral sert principalement agrave supprimer lerreur statique Lideacutee principale est de charger ou inteacutegrer lerreur depuis le deacutebut et dajouter cette erreur agrave la consigne jusquagrave ce quelle devienne nulle Lorsque cette erreur est nulle le terme inteacutegral se stabilise et il compense parfaitement lerreur entre la consigne et la vitesse reacuteelle Deacutemonstration en image

On voit cette fois-ci que le terme inteacutegral a bien fonctionneacute et que lerreur statique est nulle On constate aussi que plus le gain Ki est grand plus le systegraveme converge vite En revanche plus Ki est grand plus le systegraveme oscille et plus le deacutepassement est grand Sur des asservissements en position le terme deacuteriveacute permet de diminuer le deacutepassement et les oscillations Nous allons voir que dans notre cas nous avons quelques problegravemes

d Asservissement PID ou agrave avance de phase

On a donc rajouteacute le terme deacuteriveacute comme tout bon livre dautomatique le preacuteconise et voici les reacutesultats

Cette fois ci jai choisi de repreacutesenter la tension appliqueacutee au moteur (U) le problegraveme est bien plus flagrant ici Vous voyez que lorsque lon ajoute le terme deacuteriveacute la commande est extrecircmement bruiteacutee En reacutealiteacute on somme agrave la commande la deacuteriveacutee de la vitesse reacuteelle que lon multiplie par un gain Kd La deacuteriveacutee dune vitesse est une acceacuteleacuteration cela signifie que lon amplifie tous les bruits dacceacuteleacuteration et en plus on les multiplient par un gain Kd Donc rajoute du bruit amplifieacute dans la commande Alors pourquoi mettent t-ils ce terme deacuteriveacutee dans les livres Simplement parce que ce bruit est typique des asservissement en vitesse Sur des asservissements en position ce problegraveme est moins freacutequent car la deacuteriveacutee de la position est la vitesse

Ici le problegraveme eacutetait visible parce que nous avons reacutealiseacute toutes ces courbes sur un systegraveme reacuteel Si nous avions simuleacute ces reacutesultats lacceacuteleacuteration naurait pas eacuteteacute bruiteacutee et les courbes auraient eacuteteacute parfaites Pour impleacutementer ce PID sur notre robot il a fallu programmer en numeacuterique une deacuteriveacutee et une inteacutegrale

e PID numeacuterique et reacuteglage

Notre premier problegraveme est de programmer le terme inteacutegral Il existe une meacutethode qui consiste agrave estimer la surface entre deux eacutechantillons mais dans notre cas nous avons des problegravemes dus aux bruits et agrave la freacutequence deacutechantillonnage Alors il faut sommer toutes les erreurs depuis de deacutebut

Notre second problegraveme est de programmer le terme deacuteriveacute La meacutethode ici est de calculer la pente entre deux eacutechantillons de e Theacuteoriquement cela revient agrave faire le calcul suivant

Avec la peacuteriode deacutechantillonnage Pour faire un asservissement numeacuterique il faut impeacuterativement avoir une peacuteriode fixe Pour gagner du temps de calcul geacuteneacuteralement on inteacutegre directement dans le gain Kd

Voici un lalgorithme exemple

Ti = 0 Initialise le terme inteacutegral

for ( i=1 i lt= Nb_cycles i++ )

Init_timers (1) Initialise le timer agrave notre peacuteriode 1 ms

Y = Codeur () Stoque la valeur du codeur dans Y Rst_codeur () Remet le codeur agrave zeacutero Ud = Consigne () Mise agrave jour de la consigne e_old=e Stoque e(t-1) e = Ud - Y Calcul de lerreur Ti = Ti + e Calcul de linteacutegral Calcul du PID U = Kp e Terme proportionnel

+ Ki Ti Terme inteacutegral + Kd ( e - e_old ) Terme deacuteriveacute Moteur (U) On applique la consigne

while ( end_timer() ) On attend la fin de la peacuteriode

Pour le reacuteglage des gains Kp Ki et Kd il existe diffeacuterentes meacutethodes Ici nous lavons fait de maniegravere empirique et le reacutesultats est plutocirct bon Linconveacutenient de ces meacutethodes est quelles demandent un modegravele du systegraveme ce qui est geacuteneacuteralement dur agrave produire Il existe

aussi des composants programmables qui permettent de faire directement lasservissement numeacuterique (HCTL 1100 LM629) Ils sont exactement baseacutes sur la meacutethode preacutesenteacutee ici

Pour ce qui est du reacuteglage des correcteurs lrsquooptimal est drsquoutiliser la meacutethode de lrsquooptimum dissymeacutetrique une fois que lrsquoon agrave reacutealiseacute le modegravele du systegraveme La plus part des eacutecoles ne reacutealisent pas ce modegravele et ce limite donc agrave une correction empirique en reacutealisant des tests ou en utilisant la meacutethode Ziegler-Nichols agrave partir de la reacuteponse agrave un eacutechelon de tension

Par la suite nous rappellerons les meacutethodes de Ziegler-Nichols et de lrsquooptimum dissymeacutetrique

f Les meacutethodes de Ziegler-Nichols

Ces meacutethodes fournissent des reacuteglages pour des correcteurs de type PID (pouvant ne comporter quune action Proportionnelle une action Proportionnelle et une action Inteacutegrale ou les 3 actions simultaneacutement) dont la structure est la suivante

bull MEacuteTHODE DE ZIEGLER NICHOLS TEMPORELLE

Elle est adapteacutee aux systegravemes stables en boucle ouverte qui ont une reacuteponse apeacuteriodique La reacuteponse agrave un eacutechelon unitaire du systegraveme physique doit ecirctre enregistreacutee Diffeacuterentes caracteacuteristiques de la reacuteponse obtenue sont mesureacutees

Le modegravele approcheacute utiliseacutee par Ziegler Nichols comporte une constante de temps et un retard pur ou bien un retard pur et un inteacutegrateur

Si le systegraveme physique comporte un inteacutegrateur les mesures de a et de L demeurent disponibles sur le deacutebut de la reacuteponse

Les reacuteglages suggeacutereacutes par la meacutethode temporelle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 1a - -correcteur PI 09a 3L -

correcteur PID 12a 2L L2Concernant le raffinement des reacuteglages augmenter Kp ou diminuer Ti augment les

oscillations de la sortie

bull MEacuteTHODE DE ZIEGLER NICHOLS FREacuteQUENTIELLE

Cette meacutethode convient particuliegraverement bien aux systegravemes instables en boucle ouverte pour lesquels la meacutethode temporelle nest pas envisageable Lexpeacuterimentation se fait sur le systegraveme boucleacute avec un simple gain proportionnel qui doit ecirctre stable Le principe est de modifier la valeur du gain par essai-erreur jusquagrave atteindre la limite de stabiliteacute (pheacutenomegravene de pompage) Il reste agrave relever le gain limite K0 obtenu et agrave mesurer la peacuteriode T0 des oscillations de la reacuteponse obtenue

Les reacuteglages suggeacutereacutes par la meacutethode freacutequentielle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 05 K0 - -correcteur PI 045 K0 08 T0 -

correcteur PID 06 K0 05 T0 0125 T0

A la page Internet suivante vous trouverez un simulateur de cette meacutethode

httpwww-hadocensieginpgfrhadocateliersreglageEmpCorrReglEmpCorrDroithtml

g Meacutethode de lrsquooptimum dyssimeacutetique (voir poly MC06 Chap 5 et 8)

Cette meacutethode srsquoapplique une fois le modegravele reacutealiseacute et mis sous la forme drsquoun second ordre

et on obtient le correcteur PI

pour une surtension deacutesireacutee QdB

Q = 10^(QdB20)λ= radic(Qsup2(Qsup2-1))Δφ = arcos (1 λ)α= ((1+sin(Δφ))cos(Δφ))sup2ωN= ωQαω0= ωQradicαKP= ω0 λ KQ

4 Les microcontrocircleurs

a Avant propos

Cette fiche se veut ecirctre sous la forme dun projet Un projet non termineacute ougrave chacun peut apporter sa contribution (ameacuteliorations adaptations corrections etc)De ce fait ces pages sont ameneacutees agrave eacutevoluer et vous-mecircme pourrez participer agrave leur eacutevolution

Pourquoi avoir choisit un tel mode de travail Tout simplement parce que le sujet est vaste et que des variations sont possibles suivant lutilisation quen feront les diffeacuterentes personnes

Le but de ce projet est de reacutealiser une double asservissement de vitesse (type PID) de deux moteurs sur un seul PIC (type 16F877) Lutiliteacute majeure eacutetant de faire rouler un robot bien droit et agrave la bonne vitesse A quoi ccedila sert plus preacuteciseacutement

Avec un seul PIC ce projet permet aux roboticiens amateurs et chevronneacutes de reacutealiser facilement leur asservissement de vitesse de moteurs agrave courant continu (en geacuteneacuteral les moteurs de propulsions de leur robot mais ccedila peut ecirctre bien sucircr dautres moteurs) La commande de lasservissement pourra se faire agrave terme en liaison seacuterie (deacutejagrave fait) I2C ou par bus ISA

b Avantages

Il existe bien sucircr dautres systegravemes qui gegraverent un asservissement de vitesses Des systegravemes professionnels existent comme les LM629 Ils ont linconveacutenient decirctre cher (et ce pour un seul moteur) et relativement complexes

Pourquoi chercher un fusil pour chasser des moustiques Le double asservissement sur PIC vous coucircte le prix dun PIC soit environ 15Euro pour un 16F877 actuellement et ce pour 2 moteurs Ce double asservissement se veut relativement simple De plus vous pouvez en modifier le programme et ladapter agrave vos besoins

c Inconveacutenients

Les personnes qui auront les moyens preacutefeacutererons opter pour un systegraveme professionnel certainement pour des raisons de fiabiliteacute mais cest agrave leurs risques et peacuterils -)La puissance du PIC eacutetant limiteacutee il ne peut pas reacutealiser des PID trop rapides ou trop complexes Il y a en particulier une limitation sur le nombre dimpulsions par seconde quil est capable de geacuterer

Le langage utiliseacute eacutetant le C il faut une licence du logiciel pour pouvoir modifier et recompiler le code source c Mais le projet se veut geacuteneacuterique Une version donneacutee pourra ecirctre utiliseacute sans recompilation en respectant quelques contraintes

d Asservissement

En fait on pourrait imaginer quil suffirait denvoyer au moteur une puissance constante pour quil tourne tout le temps agrave la mecircme vitesse Ce nest pas vrai du tout Tout dabord 2 moteurs dune mecircme seacuterie nauront pas forceacutement le mecircme comportement Ensuite parce que les niveaux de tension ou dautre diffeacuterences eacutelectriques peuvent jouer Enfin parce que des influences exteacuterieures (obstacles frein meacutecanique du robot) peuvent jouer

Du coup il est tregraves difficile de faire aller un moteur agrave la vitesse voulue Parfois ce nest pas gecircnant mais ccedila peut lecirctre Un exemple classique est le robot avec 2 roues motrices type char une configuration qui est tregraves courante Mais pour que ce robot aille droit il faut que les 2 moteurs aillent exactement agrave la mecircme vitesse

La solution est de faire un asservissement Cest a dire moduler dynamiquement la puissance envoyeacute aux moteurs suivant leur vitesse mesureacutee afin dadapter celle-ci agrave ce qui est deacutesireacuteeCela implique un eacuteleacutement tregraves important pour asservir il faut un capteur de vitesse du moteur En geacuteneacuteral il sagit dun compte-tour qui enverra N impulsions (ou pas) par tour de moteur Ensuite un programme va calculer en fonction de la vitesse mesureacutee du moteur la puissance agrave utiliser

Les asservissements sont constamment en train de chercher leacutequilibre Il faut bien comprendre quils mettent un certain temps agrave latteindre et ce dernier peut aussi ecirctre instable si lasservissement est mal reacutegleacute

Lasservissement quon va utiliser ici est un classique PIDou plus preacuteciseacutement un PI car pour des raisons de vitesses de traitement la composante deacuteriveacutee est laisseacutee de coteacute (mais rien de difficile agrave rajouter)

Le PID ou Proportionnel Inteacutegrale Deacuteriveacute est une meacutethode de calcul dasservissement

Soit Kp Ki et Kd les coefficients proportionnels inteacutegrale et deacuteriveacuteSoit e lerreur Vitesse mesureacutee moins vitesse demandeacuteeSoit Ti le terme inteacutegral dabord initialiseacute agrave 0

Consigne a appliquer (PWM) = Kp e + (1Ki) (Ti += e) + Kd (e - e(t-1))

On pourrait dire des pages et des pages sur le PID et ce nest pas mon but ici Merci de vous reporter au lien ci-dessous

Pour plus de deacutetails sur le PID la page de lANCR httpwwwancrorgfichtechactionpidindexhtmChez les Fribottes la Simulation de Jean-Claude httpwwwwikifreefrWiKiFriindexphpSimulateur20de20PID

e Le pic

Le PIC est un petit microcontrocircleur assez bon marche et simple a programmer comme a utiliser

La aussi je vais pas rentrer dans les deacutetails vous pouvez vous reporter agrave la bdtech du site Fribotte et en particulier aux cours de Bigonoff

Le PIC est ici programmeacute en C voir la page Fribotte ici Lutilisation du langage C permet dalleacuteger consideacuterablement le deacuteveloppement dune application compliqueacutee

2 Module AVR

httpwwwenseirbfr~matzfravrphp

Tregraves peu de renseignement sur ce module sinon ces informations drsquoun eacutetudiant de lrsquoEnseirb

Depuis plusieurs anneacutees je participe agrave la coupe de robotique E=M6 dont lobjectif pour chaque eacutequipe est de fabriquer un robot autonome devant se conformer agrave un regraveglement Pour plus dinfos vous pouvez vous rendre sur le site de mon eacutequipe Microb Technology ou bien sur le site de Planegravete Sciences lorganisme beacuteneacutevole qui organise cette compeacutetition

Jai deacutecouvert en 2001 les microcontrocircleurs Atmel AVR auxquels je me suis beaucoup attacheacute dune part parce quils sont assez performants pour des microcontrocircleurs 8 bits mais aussi et surtout car le fameux compilateur libre GCC est capable de compiler du code C pour ces petites becirctes Il existe de surcroicirct plusieurs outils libres permettant de les programmer de les simuler etc

Le but de ce projet est donc de deacutevelopper des modules servant dinterface geacuteneacuterique avec le hardware du microcontrocircleur quel que soit la version (par exemple les UART inclus dans les AVR AtMega sont diffeacuterents de ceux preacutesents dans les petits AVR) et de deacutevelopper des modules utiles pour certaines utilisations usuelles et pas seulement pour la coupe E=M6 (codage de hamming asservissement chiffrement etc)

Vous pouvez contacter leacutequipe de deacuteveloppement agrave avr-devdroids-corporg Pour le moment aucune release na eacuteteacute faite mais le travail est deacutejagrave bien avanceacute Chaque soir un screenshot du CVS est reacutealiseacute Il peut ne pas compiler mais normalement ccedila devrait fonctionner Voici le lien

3 Modules drsquoasservissement analogique laquo Escap raquo

Nous avons essayeacute de reacutecupeacuterer les cartes de commande Escap pour moteurs Escap qui avaient eacuteteacute utiliseacutees en 96 et 98 avec succegraves

Nous les avons monteacutes sur une base roulante qui pesait en tout 74 kgVoici grosso-modo leurs avantages et leurs inconveacutenients (pour les notices techniques voir le rapport 96 ou 98)

a Avantages

Cette carte inclut directement un asservissement avec correcteur PI la commande de puissance les ponts en H

Elle est tregraves facile agrave utiliser Elle est speacutecialement conccedilue pour les moteurs Escap que nous avons donc

parfaitement adapteacutee

b Inconveacutenients

Les moteurs ne fonctionnent correctement que sous 24v Les cartes et les moteurs semblent assez gourment Les cartes nantis de gros radiateurs sont relativement encombrantes Les tachymegravetres monteacutes sur les moteurs ne donnent pas une indication de position

mais de vitesse (qui plus est en analogique)

Nous avons preacutefeacutereacute refaire la partie commande car celle de 1996 souffrait de quelques deacutefauts (cf rapport 1996)

La conversion numeacuterique analogique

Pour reacutealiser la conversion numeacuterique analogique nous avons choisit un pont agrave reacutesistance R-2R

Nous pouvons consideacuterer que chaque bit est relieacute agrave un geacuteneacuterateur ideacuteal de tension (qui deacutelivre 0v ou 5v) Par conseacutequent la reacutesistance eacutequivalente quelque soit lrsquoeacutetat des bits et quelques soit le nombre de bits vue entre la sortie et la masse sera eacutegal agrave R

La tension Vs en fonction de lrsquoeacutetat des bits sera

Ce type de CAN eacutetant tregraves classique nous nrsquoindiquerons pas les deacutemonstrations toutefois vous pourrez les trouver tregraves facilement sur Internet ou sur le Cd-rom drsquoannexes joint au dossier

Le montage de Thevenin eacutequivalent est donc

Nous avons jugeacute qursquoune discreacutetisation sur 8 bits eacutetait un peu superflu crsquoest pourquoi nous nous contenterons de 4 bits (ce qui repreacutesentent quand mecircme 16 niveaux de vitesse)

bull Lrsquoadaptation du niveau de tension

Nous avons agrave la sortie du CAN une tension qui srsquoeacutetend de 0 agrave 5v or la commande des cartes Escap ce fait entre -5v et +5v

On peut voir cette adaptation comme lrsquoajout drsquoun offset de -25v et une amplification de gain 2

Voici le montage reacutealisant cette conversion

M1 est un montage suiveur qui lsquorecopiersquo la tension aux bornes de P1 mais sous une impeacutedance constante et eacutegale agrave 4R En 1996 lrsquoeacutequipe avait brancheacute P1 directement sur M3 mais cela a pour inconveacutenient de faire varier agrave la fois lrsquooffset et la penteLe potentiomegravetre P1 permet drsquoajuster lrsquooffset (permet par conseacutequent de reacutegler lrsquoarrecirct complet de moteur) (La valeur theacuteorique de lrsquooffset est 5V (cf formule en M3))

M2 est aussi un montage suiveur Le potentiomegravetre P2 permet drsquoajuster la pente (qui doit avoir un coefficient directeur de 2) Comme M2 est connecteacute au CAN dont la reacutesistance interne est de R P2 doit ecirctre a peut precirct eacutegal agrave R de la sorte la branche aura une reacutesistance eacutequivalente de 2R

M3 Sommateur (Vs = - 2 (Ve + Voffset))

Qursquoelle valeur choisir pour R

Theacuteoriquement on peut choisir nrsquoimporte quelle valeur pour R mais en pratique si R est trop petite une intensiteacute importante serait consommeacutee sans raison et si R est trop grande la forte impeacutedance du montage le rendra tregraves sensible aux parasites (secteur moteurshellip)Ce montage a eacuteteacute testeacute et fonctionne correctement pour R=5k les amplificateurs opeacuterationnels utiliseacutes sont des LM324 mais drsquoautres seraient tout agrave fait envisageables (peu de contraintes de vitesse et de tensions de deacutechets)

4 Conclusion

Nous avons preacutefeacutereacute ne pas utiliser les cartes Escap car les moteurs ne renvoient pas une position sous forme drsquoimpulsion mais une vitesse Etant donneacute que nous avions envisageacute un repeacuterage par odomeacutetrie cela compliquait consideacuterablement la tache

Toutefois il faut savoir que cette solution a eacuteteacute testeacutee et fonctionne tregraves bien (bonne preacutecision bonne dynamique) ainsi dans le cas ougrave le repeacuterage ne se fait pas par odomeacutetrie mais des balises exteacuterieures sachez que cette solution est tregraves pratique agrave utiliser En effet pour imposer une vitesse il suffit au microcontrocircleur drsquoappliquer sur un port un mot binaire correspondant agrave la vitesse voulue hellip et crsquoest tout La carte Escap se charge du reste

5 Carte drsquoasservissement numeacuterique laquo artisanale raquo

La carte reacutealiseacutee baseacutee sur un microcontrocircleur PIC 16F877A srsquoest aveacutereacutee fonctionnelle mais les tests drsquoalgorithmes drsquoasservissement nrsquoont pas eacuteteacute effectueacutesEn effet lrsquoutilisation de cette solution neacutecessite un microcontrocircleur deacutedieacute agrave lrsquoasservissement capable de communiquer via un protocole agrave deacutefinir avec la laquo carte megravere raquo (centralisant les retours des autres capteurs du robot et agissant sur les diffeacuterents actionneurs en fonction de la strateacutegie)Or afin de limiter le nombre de microcontrocircleurs sur le robot et du fait que lrsquoon dispose drsquoun budget suffisant nous avons deacutecideacute drsquoessayer drsquoutiliser des composants speacuteciaux reacutealisant lrsquoasservissement

Le systegraveme se deacutecompose en

- Un microcontrocircleur pour appliquer la PWM asservir et commander- Une carte de puissance pour chaque moteur baseacutee sur un LMD18200- Une carte compteur drsquoimpulsions pour les codeurs

Afin de favoriser lrsquointeractiviteacute et les reacuteglages jrsquoai ajouteacute une carte afficheur LCD avec 6 boutons sur la carte microcontrocircleur

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 24: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

Photo de lrsquoassemblage roues ndash blocs moteurs ndash moteurs ndash platine

Partie C Lrsquoeacutelectronique20 Les batteries

Afin de pouvoir choisir les batteries approprieacutees agrave notre application nous devons dans un premier temps faire une estimation de la consommation drsquoeacutenergie totale avec les pointes de courant envisageacutees dans notre robotIl est agrave noter que nous ne connaissons pas encore en deacutetail tous les eacuteleacutements annexes qui seront implanteacutes dans le robot comme par exemple les capteurs et actionneurs diverses qui seront choisis en fonction des objectifs technologiques atteints ou non de lrsquoassociation et de la strateacutegie finaleDans le but de pouvoir utiliser agrave nouveau dans lrsquoavenir notre base roulante nous avons choisi de surestimer les besoins en eacutenergie de sorte agrave ne pas ecirctre pris au deacutepourvu

La consommation pourrait se deacutecomposer ainsi - 2 moteurs de 24V sous 21A soit 1008 Watts pendant 100 du temps- 3 actionneurs de 21 Watts chacun soit 63 Watts pendant 50 du temps- 3A pour lrsquoeacutelectronique sous 5V soit 15 Watts pendant 100 du temps (Asservissement carte de commandes capteurs)

Ce qui nous fait au total une consommation maximale ~180 WattsLa consommation permanente devrait ecirctre ~147 Watts permanents il faut donc que les batteries puissent deacutebiter un courant de ~6 A sous 24 V durant le fonctionnement du robot

Apregraves une longue recherche on a pu reacutealiser le tableau comparatif des batteries suivant

typeDensiteacute

deacutenergie (WhKg)

Densiteacute deacutenergie (WhL)

auto-deacutecharge (mois)

voltage dune cellule (V)

temps de charge rapide

plomb 35 111 5 agrave 10 2 8h agrave 15h

NiCd (Nickel Cadnium) 50 94 10 agrave 20 12 1h30min

NiMH (Nickel Metal Hydride) 80 135 20 agrave 30 13 2h agrave 4h

Lithium Ion 100 196 5 agrave 10 36 2h agrave 4h

Lithium polymer 150 200 5 agrave 10 36 2h agrave 4h

AlKaline rechargeable 80 15 2h agrave 3h

type

cycle de charge-deacutecharge avant

que capaciteacute passe de 100 agrave

80

Courant max Courant max pic effet meacutemoire estimation

(euroWh) prixcycles

plomb 200 agrave 300 02C 05C M 0895 0003

NiCd (Nickel Cadnium) 1500 1C 20C H 416 0003

NiMH (Nickel Metal Hydride) 300 agrave 500 05C 5C L 2 0004

Lithium Ion 500 agrave 1000 1C 2C L 8 0008

Lithium polymer 300 agrave 500 1C 2C agrave 5C L 32 0006

AlKaline rechargeable 50 02C 05C H 178 0036

Effet meacutemoire L (Low) M (Medium) H (High)Courant max C signifie capaciteacute par exemple une batterie qui peut deacutelivrer un courant max de 1C de 4Ah pourra donc deacutelivrer 4A au maximum sans risque de deacuteteacuterioration

Nous nous sommes inteacuteresseacutes au courant maximum et au temps de charge rapide pour notre choix de batteriesLe type de batterie qui semble le plus approprieacute pour nous est le type Nickel-Cadnium parfaitement adapteacute au pic drsquoappel de courant que provoquent des moteurs pouvant supporter des charges rapides en 1h30min seulement afin de devoir preacutevoir trop de jeux de batteries diffeacuterents

Les batteries LI-Ion ou LI-Polymer preacutesentent une densiteacute eacutenergeacutetique tregraves inteacuteressante mais leur prix est beaucoup plus eacuteleveacute agrave lrsquoachat et de plus dans notre application roulant sur un sol peu accidenteacute la masse pouvant ecirctre transporteacutee est suffisante pour le type NiCd

Les batteries LI-Ion ou LI-Polymer sont plus adapteacutees agrave lrsquoaeacuteromodeacutelisme ou au petit appareil eacutelectroniqueQuant aux batteries au plomb qui sont vraiment bon marcheacute le courant maximum supporteacute est trop faible est supposerait drsquoavoir une forte capaciteacute

Nous voulons avoir une autonomie de 30 minutes il nous faut donc une eacutenergie de 735 WhOr sous 24 V les batteries doivent avoir une capaciteacute de ~3 AhComme les batteries NiCd peuvent deacutebiter un courant maximum de 1C (une fois leur capaciteacute) nous devons donc prendre des batteries de 6Ah sous 24 V ce qui nous donnera une autonomie de 1 heure

Il faudra donc soit acheter un bloc accumulateur NiCd de 24 V 6 Ah srsquoil existe dans le commerce soit le reacutealiser nous mecircme en assemblant diffeacuterents eacuteleacutements

Rappelons que lrsquoassociation en seacuterie permet drsquoadditionner les tensions des eacuteleacutements associeacutes et que lrsquoassociation en parallegravele permet drsquoadditionner les courants deacutebiteacutes

Par exemple des eacuteleacutements de 12 V chacun pour 3 Ah srsquoassocieraient ainsi

Soit deux seacuteries de 20 eacuteleacutements eacutequivalentes agrave 24 V et faisant une capaciteacute de 3 Ah chacune

Il est possible de reacutepartir les accumulateurs en diffeacuterents paquets pour faciliter le rangement dans le robot ou reacutepartir la masse ou eacuteventuellement trouver des packs dans le commerce

Dans le cas de lrsquoUV PR le choix des batteries reste pour le moment sur les NiCd mais pour les essais pratiques on utilisera des batteries au plomb que lrsquoon possegravede deacutejagrave drsquoautant plus que les essais sont reacutealiseacutes avec les moteurs de propulsion et lrsquoasservissement seul ce qui

neacutecessite un deacutebit de courant de 24105 = 4375 A sur 2 batteries soit asymp2187 A

Comme les batteries au plomb peuvent deacutebiter 02C il nous en faudrait des de asymp 109 Ah

Or les essais de la base roulante ne seront que de courtes dureacutees et lrsquoon se contentera donc drsquoutiliser des batteries de 6 Ah pour des raisons de volume mecircme si elles ne sont pas vraiment bien dimensionneacutees

21 La commande des moteurs

Dans un premier temps nous verrons un bref reacutecapitulatif des cartes et modules drsquoasservissement du commerce

Pour la commande les moteurs plusieurs solutions ont eacuteteacute envisageacutees - Un asservissement lsquotout faitrsquo analogique modules laquo Escap raquo- Une solution lsquoartisanalersquo carte avec asservissement numeacuterique- Un asservissement lsquotout faitrsquo numeacuterique circuits laquo LM629 raquo

a Comparatifs des modules drsquoasservissement et calcul des correcteurs

Veille technologique sur les systegravemes drsquoasservissement utiliseacutes par les diffeacuterentes eacutecoles de la coupe E= M6

Le but de cette partie est drsquoeacutetudier les principales techniques drsquoasservissement utiliseacutees par les eacutecoles de la Coupe E=M6 Ce document est loin drsquoecirctre exhaustif et servira de base agrave compleacuteter et actualiser pour les semestres et eacutequipes prochaines

Apregraves une eacutetude sur plus drsquoune trentaine drsquoeacutecoles il ressort trois formes drsquoasservissement la plus utiliseacutee agrave 85 est du type PID en majoriteacute reacuteduit au PI ensuite viennent les microcontrocircleurs PIC associeacutes au PID et les modules AVR nous allons par la suite deacutetailler ces trois solutions Il existe eacutegalement des systegravemes de controcircle dits agrave retour drsquoeacutetat jamais utiliseacutes jusqursquoagrave preacutesent pour la Coupe crsquoest pourquoi nous ne deacutevelopperons pas son approche

3 Systegraveme PID

httpwwwancrorgfichtechactionpidindexhtm

a Principe

Pour pouvoir tester un asservissement il faut dabord reacutealiser une plate-forme de deacuteveloppement le plus geacuteneacuteralement du type suivant Mais pour commencer un brin de theacuteorie illustreacute par des exemples Le scheacutema de principe est repreacutesenteacute ci-dessous

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

Nous avons bien un scheacutema en boucle fermeacutee puisque la sortie du systegraveme est reacuteinjecteacutee dans lentreacutee Les trois blocs bleus correspondent chacun agrave une fonctionnaliteacute Ki est le coefficient inteacutegral Kp le coefficient proportionnel et Kd le coefficient deacuteriveacute Chacun de ces coefficients a une fonctionnaliteacute bien preacutecise Commenccedilons par le plus simple le proportionnel

b Asservissement P

Lasservissement proportionnel est essentiel au fonctionnement du PID Il permet essentiellement de donner de la puissance au moteur Voici quelques reacutesultats dexpeacuterimentations avec Ki=0 et Kd=0

La courbe noire repreacutesente la consigne que lon deacutesire atteindre (Ud) cest un eacutechelon de valeur 32 La courbe bleue repreacutesente la vitesse reacuteelle du systegraveme (Y) Comme vous pouvez le constater plus Kp est grand plus le systegraveme converge vite vers sa valeur finale Mais en contrepartie pour des valeurs de Kp trop grandes le systegraveme oscille Mais lagrave nest pas notre plus gros problegraveme en effet sur ces courbes on voit nettement que la vitesse du moteur natteint jamais la vitesse deacutesireacutee Cest ce que lon appelle lerreur statique elle correspond agrave la diffeacuterence entre la vitesse reacuteelle et la vitesse deacutesireacutee en reacutegime eacutetablie (une fois que le systegraveme sest stabiliseacute) Pour compenser cette erreur statique on rajoute le terme inteacutegral

c Asservissement PI

Le correcteur inteacutegral sert principalement agrave supprimer lerreur statique Lideacutee principale est de charger ou inteacutegrer lerreur depuis le deacutebut et dajouter cette erreur agrave la consigne jusquagrave ce quelle devienne nulle Lorsque cette erreur est nulle le terme inteacutegral se stabilise et il compense parfaitement lerreur entre la consigne et la vitesse reacuteelle Deacutemonstration en image

On voit cette fois-ci que le terme inteacutegral a bien fonctionneacute et que lerreur statique est nulle On constate aussi que plus le gain Ki est grand plus le systegraveme converge vite En revanche plus Ki est grand plus le systegraveme oscille et plus le deacutepassement est grand Sur des asservissements en position le terme deacuteriveacute permet de diminuer le deacutepassement et les oscillations Nous allons voir que dans notre cas nous avons quelques problegravemes

d Asservissement PID ou agrave avance de phase

On a donc rajouteacute le terme deacuteriveacute comme tout bon livre dautomatique le preacuteconise et voici les reacutesultats

Cette fois ci jai choisi de repreacutesenter la tension appliqueacutee au moteur (U) le problegraveme est bien plus flagrant ici Vous voyez que lorsque lon ajoute le terme deacuteriveacute la commande est extrecircmement bruiteacutee En reacutealiteacute on somme agrave la commande la deacuteriveacutee de la vitesse reacuteelle que lon multiplie par un gain Kd La deacuteriveacutee dune vitesse est une acceacuteleacuteration cela signifie que lon amplifie tous les bruits dacceacuteleacuteration et en plus on les multiplient par un gain Kd Donc rajoute du bruit amplifieacute dans la commande Alors pourquoi mettent t-ils ce terme deacuteriveacutee dans les livres Simplement parce que ce bruit est typique des asservissement en vitesse Sur des asservissements en position ce problegraveme est moins freacutequent car la deacuteriveacutee de la position est la vitesse

Ici le problegraveme eacutetait visible parce que nous avons reacutealiseacute toutes ces courbes sur un systegraveme reacuteel Si nous avions simuleacute ces reacutesultats lacceacuteleacuteration naurait pas eacuteteacute bruiteacutee et les courbes auraient eacuteteacute parfaites Pour impleacutementer ce PID sur notre robot il a fallu programmer en numeacuterique une deacuteriveacutee et une inteacutegrale

e PID numeacuterique et reacuteglage

Notre premier problegraveme est de programmer le terme inteacutegral Il existe une meacutethode qui consiste agrave estimer la surface entre deux eacutechantillons mais dans notre cas nous avons des problegravemes dus aux bruits et agrave la freacutequence deacutechantillonnage Alors il faut sommer toutes les erreurs depuis de deacutebut

Notre second problegraveme est de programmer le terme deacuteriveacute La meacutethode ici est de calculer la pente entre deux eacutechantillons de e Theacuteoriquement cela revient agrave faire le calcul suivant

Avec la peacuteriode deacutechantillonnage Pour faire un asservissement numeacuterique il faut impeacuterativement avoir une peacuteriode fixe Pour gagner du temps de calcul geacuteneacuteralement on inteacutegre directement dans le gain Kd

Voici un lalgorithme exemple

Ti = 0 Initialise le terme inteacutegral

for ( i=1 i lt= Nb_cycles i++ )

Init_timers (1) Initialise le timer agrave notre peacuteriode 1 ms

Y = Codeur () Stoque la valeur du codeur dans Y Rst_codeur () Remet le codeur agrave zeacutero Ud = Consigne () Mise agrave jour de la consigne e_old=e Stoque e(t-1) e = Ud - Y Calcul de lerreur Ti = Ti + e Calcul de linteacutegral Calcul du PID U = Kp e Terme proportionnel

+ Ki Ti Terme inteacutegral + Kd ( e - e_old ) Terme deacuteriveacute Moteur (U) On applique la consigne

while ( end_timer() ) On attend la fin de la peacuteriode

Pour le reacuteglage des gains Kp Ki et Kd il existe diffeacuterentes meacutethodes Ici nous lavons fait de maniegravere empirique et le reacutesultats est plutocirct bon Linconveacutenient de ces meacutethodes est quelles demandent un modegravele du systegraveme ce qui est geacuteneacuteralement dur agrave produire Il existe

aussi des composants programmables qui permettent de faire directement lasservissement numeacuterique (HCTL 1100 LM629) Ils sont exactement baseacutes sur la meacutethode preacutesenteacutee ici

Pour ce qui est du reacuteglage des correcteurs lrsquooptimal est drsquoutiliser la meacutethode de lrsquooptimum dissymeacutetrique une fois que lrsquoon agrave reacutealiseacute le modegravele du systegraveme La plus part des eacutecoles ne reacutealisent pas ce modegravele et ce limite donc agrave une correction empirique en reacutealisant des tests ou en utilisant la meacutethode Ziegler-Nichols agrave partir de la reacuteponse agrave un eacutechelon de tension

Par la suite nous rappellerons les meacutethodes de Ziegler-Nichols et de lrsquooptimum dissymeacutetrique

f Les meacutethodes de Ziegler-Nichols

Ces meacutethodes fournissent des reacuteglages pour des correcteurs de type PID (pouvant ne comporter quune action Proportionnelle une action Proportionnelle et une action Inteacutegrale ou les 3 actions simultaneacutement) dont la structure est la suivante

bull MEacuteTHODE DE ZIEGLER NICHOLS TEMPORELLE

Elle est adapteacutee aux systegravemes stables en boucle ouverte qui ont une reacuteponse apeacuteriodique La reacuteponse agrave un eacutechelon unitaire du systegraveme physique doit ecirctre enregistreacutee Diffeacuterentes caracteacuteristiques de la reacuteponse obtenue sont mesureacutees

Le modegravele approcheacute utiliseacutee par Ziegler Nichols comporte une constante de temps et un retard pur ou bien un retard pur et un inteacutegrateur

Si le systegraveme physique comporte un inteacutegrateur les mesures de a et de L demeurent disponibles sur le deacutebut de la reacuteponse

Les reacuteglages suggeacutereacutes par la meacutethode temporelle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 1a - -correcteur PI 09a 3L -

correcteur PID 12a 2L L2Concernant le raffinement des reacuteglages augmenter Kp ou diminuer Ti augment les

oscillations de la sortie

bull MEacuteTHODE DE ZIEGLER NICHOLS FREacuteQUENTIELLE

Cette meacutethode convient particuliegraverement bien aux systegravemes instables en boucle ouverte pour lesquels la meacutethode temporelle nest pas envisageable Lexpeacuterimentation se fait sur le systegraveme boucleacute avec un simple gain proportionnel qui doit ecirctre stable Le principe est de modifier la valeur du gain par essai-erreur jusquagrave atteindre la limite de stabiliteacute (pheacutenomegravene de pompage) Il reste agrave relever le gain limite K0 obtenu et agrave mesurer la peacuteriode T0 des oscillations de la reacuteponse obtenue

Les reacuteglages suggeacutereacutes par la meacutethode freacutequentielle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 05 K0 - -correcteur PI 045 K0 08 T0 -

correcteur PID 06 K0 05 T0 0125 T0

A la page Internet suivante vous trouverez un simulateur de cette meacutethode

httpwww-hadocensieginpgfrhadocateliersreglageEmpCorrReglEmpCorrDroithtml

g Meacutethode de lrsquooptimum dyssimeacutetique (voir poly MC06 Chap 5 et 8)

Cette meacutethode srsquoapplique une fois le modegravele reacutealiseacute et mis sous la forme drsquoun second ordre

et on obtient le correcteur PI

pour une surtension deacutesireacutee QdB

Q = 10^(QdB20)λ= radic(Qsup2(Qsup2-1))Δφ = arcos (1 λ)α= ((1+sin(Δφ))cos(Δφ))sup2ωN= ωQαω0= ωQradicαKP= ω0 λ KQ

4 Les microcontrocircleurs

a Avant propos

Cette fiche se veut ecirctre sous la forme dun projet Un projet non termineacute ougrave chacun peut apporter sa contribution (ameacuteliorations adaptations corrections etc)De ce fait ces pages sont ameneacutees agrave eacutevoluer et vous-mecircme pourrez participer agrave leur eacutevolution

Pourquoi avoir choisit un tel mode de travail Tout simplement parce que le sujet est vaste et que des variations sont possibles suivant lutilisation quen feront les diffeacuterentes personnes

Le but de ce projet est de reacutealiser une double asservissement de vitesse (type PID) de deux moteurs sur un seul PIC (type 16F877) Lutiliteacute majeure eacutetant de faire rouler un robot bien droit et agrave la bonne vitesse A quoi ccedila sert plus preacuteciseacutement

Avec un seul PIC ce projet permet aux roboticiens amateurs et chevronneacutes de reacutealiser facilement leur asservissement de vitesse de moteurs agrave courant continu (en geacuteneacuteral les moteurs de propulsions de leur robot mais ccedila peut ecirctre bien sucircr dautres moteurs) La commande de lasservissement pourra se faire agrave terme en liaison seacuterie (deacutejagrave fait) I2C ou par bus ISA

b Avantages

Il existe bien sucircr dautres systegravemes qui gegraverent un asservissement de vitesses Des systegravemes professionnels existent comme les LM629 Ils ont linconveacutenient decirctre cher (et ce pour un seul moteur) et relativement complexes

Pourquoi chercher un fusil pour chasser des moustiques Le double asservissement sur PIC vous coucircte le prix dun PIC soit environ 15Euro pour un 16F877 actuellement et ce pour 2 moteurs Ce double asservissement se veut relativement simple De plus vous pouvez en modifier le programme et ladapter agrave vos besoins

c Inconveacutenients

Les personnes qui auront les moyens preacutefeacutererons opter pour un systegraveme professionnel certainement pour des raisons de fiabiliteacute mais cest agrave leurs risques et peacuterils -)La puissance du PIC eacutetant limiteacutee il ne peut pas reacutealiser des PID trop rapides ou trop complexes Il y a en particulier une limitation sur le nombre dimpulsions par seconde quil est capable de geacuterer

Le langage utiliseacute eacutetant le C il faut une licence du logiciel pour pouvoir modifier et recompiler le code source c Mais le projet se veut geacuteneacuterique Une version donneacutee pourra ecirctre utiliseacute sans recompilation en respectant quelques contraintes

d Asservissement

En fait on pourrait imaginer quil suffirait denvoyer au moteur une puissance constante pour quil tourne tout le temps agrave la mecircme vitesse Ce nest pas vrai du tout Tout dabord 2 moteurs dune mecircme seacuterie nauront pas forceacutement le mecircme comportement Ensuite parce que les niveaux de tension ou dautre diffeacuterences eacutelectriques peuvent jouer Enfin parce que des influences exteacuterieures (obstacles frein meacutecanique du robot) peuvent jouer

Du coup il est tregraves difficile de faire aller un moteur agrave la vitesse voulue Parfois ce nest pas gecircnant mais ccedila peut lecirctre Un exemple classique est le robot avec 2 roues motrices type char une configuration qui est tregraves courante Mais pour que ce robot aille droit il faut que les 2 moteurs aillent exactement agrave la mecircme vitesse

La solution est de faire un asservissement Cest a dire moduler dynamiquement la puissance envoyeacute aux moteurs suivant leur vitesse mesureacutee afin dadapter celle-ci agrave ce qui est deacutesireacuteeCela implique un eacuteleacutement tregraves important pour asservir il faut un capteur de vitesse du moteur En geacuteneacuteral il sagit dun compte-tour qui enverra N impulsions (ou pas) par tour de moteur Ensuite un programme va calculer en fonction de la vitesse mesureacutee du moteur la puissance agrave utiliser

Les asservissements sont constamment en train de chercher leacutequilibre Il faut bien comprendre quils mettent un certain temps agrave latteindre et ce dernier peut aussi ecirctre instable si lasservissement est mal reacutegleacute

Lasservissement quon va utiliser ici est un classique PIDou plus preacuteciseacutement un PI car pour des raisons de vitesses de traitement la composante deacuteriveacutee est laisseacutee de coteacute (mais rien de difficile agrave rajouter)

Le PID ou Proportionnel Inteacutegrale Deacuteriveacute est une meacutethode de calcul dasservissement

Soit Kp Ki et Kd les coefficients proportionnels inteacutegrale et deacuteriveacuteSoit e lerreur Vitesse mesureacutee moins vitesse demandeacuteeSoit Ti le terme inteacutegral dabord initialiseacute agrave 0

Consigne a appliquer (PWM) = Kp e + (1Ki) (Ti += e) + Kd (e - e(t-1))

On pourrait dire des pages et des pages sur le PID et ce nest pas mon but ici Merci de vous reporter au lien ci-dessous

Pour plus de deacutetails sur le PID la page de lANCR httpwwwancrorgfichtechactionpidindexhtmChez les Fribottes la Simulation de Jean-Claude httpwwwwikifreefrWiKiFriindexphpSimulateur20de20PID

e Le pic

Le PIC est un petit microcontrocircleur assez bon marche et simple a programmer comme a utiliser

La aussi je vais pas rentrer dans les deacutetails vous pouvez vous reporter agrave la bdtech du site Fribotte et en particulier aux cours de Bigonoff

Le PIC est ici programmeacute en C voir la page Fribotte ici Lutilisation du langage C permet dalleacuteger consideacuterablement le deacuteveloppement dune application compliqueacutee

2 Module AVR

httpwwwenseirbfr~matzfravrphp

Tregraves peu de renseignement sur ce module sinon ces informations drsquoun eacutetudiant de lrsquoEnseirb

Depuis plusieurs anneacutees je participe agrave la coupe de robotique E=M6 dont lobjectif pour chaque eacutequipe est de fabriquer un robot autonome devant se conformer agrave un regraveglement Pour plus dinfos vous pouvez vous rendre sur le site de mon eacutequipe Microb Technology ou bien sur le site de Planegravete Sciences lorganisme beacuteneacutevole qui organise cette compeacutetition

Jai deacutecouvert en 2001 les microcontrocircleurs Atmel AVR auxquels je me suis beaucoup attacheacute dune part parce quils sont assez performants pour des microcontrocircleurs 8 bits mais aussi et surtout car le fameux compilateur libre GCC est capable de compiler du code C pour ces petites becirctes Il existe de surcroicirct plusieurs outils libres permettant de les programmer de les simuler etc

Le but de ce projet est donc de deacutevelopper des modules servant dinterface geacuteneacuterique avec le hardware du microcontrocircleur quel que soit la version (par exemple les UART inclus dans les AVR AtMega sont diffeacuterents de ceux preacutesents dans les petits AVR) et de deacutevelopper des modules utiles pour certaines utilisations usuelles et pas seulement pour la coupe E=M6 (codage de hamming asservissement chiffrement etc)

Vous pouvez contacter leacutequipe de deacuteveloppement agrave avr-devdroids-corporg Pour le moment aucune release na eacuteteacute faite mais le travail est deacutejagrave bien avanceacute Chaque soir un screenshot du CVS est reacutealiseacute Il peut ne pas compiler mais normalement ccedila devrait fonctionner Voici le lien

3 Modules drsquoasservissement analogique laquo Escap raquo

Nous avons essayeacute de reacutecupeacuterer les cartes de commande Escap pour moteurs Escap qui avaient eacuteteacute utiliseacutees en 96 et 98 avec succegraves

Nous les avons monteacutes sur une base roulante qui pesait en tout 74 kgVoici grosso-modo leurs avantages et leurs inconveacutenients (pour les notices techniques voir le rapport 96 ou 98)

a Avantages

Cette carte inclut directement un asservissement avec correcteur PI la commande de puissance les ponts en H

Elle est tregraves facile agrave utiliser Elle est speacutecialement conccedilue pour les moteurs Escap que nous avons donc

parfaitement adapteacutee

b Inconveacutenients

Les moteurs ne fonctionnent correctement que sous 24v Les cartes et les moteurs semblent assez gourment Les cartes nantis de gros radiateurs sont relativement encombrantes Les tachymegravetres monteacutes sur les moteurs ne donnent pas une indication de position

mais de vitesse (qui plus est en analogique)

Nous avons preacutefeacutereacute refaire la partie commande car celle de 1996 souffrait de quelques deacutefauts (cf rapport 1996)

La conversion numeacuterique analogique

Pour reacutealiser la conversion numeacuterique analogique nous avons choisit un pont agrave reacutesistance R-2R

Nous pouvons consideacuterer que chaque bit est relieacute agrave un geacuteneacuterateur ideacuteal de tension (qui deacutelivre 0v ou 5v) Par conseacutequent la reacutesistance eacutequivalente quelque soit lrsquoeacutetat des bits et quelques soit le nombre de bits vue entre la sortie et la masse sera eacutegal agrave R

La tension Vs en fonction de lrsquoeacutetat des bits sera

Ce type de CAN eacutetant tregraves classique nous nrsquoindiquerons pas les deacutemonstrations toutefois vous pourrez les trouver tregraves facilement sur Internet ou sur le Cd-rom drsquoannexes joint au dossier

Le montage de Thevenin eacutequivalent est donc

Nous avons jugeacute qursquoune discreacutetisation sur 8 bits eacutetait un peu superflu crsquoest pourquoi nous nous contenterons de 4 bits (ce qui repreacutesentent quand mecircme 16 niveaux de vitesse)

bull Lrsquoadaptation du niveau de tension

Nous avons agrave la sortie du CAN une tension qui srsquoeacutetend de 0 agrave 5v or la commande des cartes Escap ce fait entre -5v et +5v

On peut voir cette adaptation comme lrsquoajout drsquoun offset de -25v et une amplification de gain 2

Voici le montage reacutealisant cette conversion

M1 est un montage suiveur qui lsquorecopiersquo la tension aux bornes de P1 mais sous une impeacutedance constante et eacutegale agrave 4R En 1996 lrsquoeacutequipe avait brancheacute P1 directement sur M3 mais cela a pour inconveacutenient de faire varier agrave la fois lrsquooffset et la penteLe potentiomegravetre P1 permet drsquoajuster lrsquooffset (permet par conseacutequent de reacutegler lrsquoarrecirct complet de moteur) (La valeur theacuteorique de lrsquooffset est 5V (cf formule en M3))

M2 est aussi un montage suiveur Le potentiomegravetre P2 permet drsquoajuster la pente (qui doit avoir un coefficient directeur de 2) Comme M2 est connecteacute au CAN dont la reacutesistance interne est de R P2 doit ecirctre a peut precirct eacutegal agrave R de la sorte la branche aura une reacutesistance eacutequivalente de 2R

M3 Sommateur (Vs = - 2 (Ve + Voffset))

Qursquoelle valeur choisir pour R

Theacuteoriquement on peut choisir nrsquoimporte quelle valeur pour R mais en pratique si R est trop petite une intensiteacute importante serait consommeacutee sans raison et si R est trop grande la forte impeacutedance du montage le rendra tregraves sensible aux parasites (secteur moteurshellip)Ce montage a eacuteteacute testeacute et fonctionne correctement pour R=5k les amplificateurs opeacuterationnels utiliseacutes sont des LM324 mais drsquoautres seraient tout agrave fait envisageables (peu de contraintes de vitesse et de tensions de deacutechets)

4 Conclusion

Nous avons preacutefeacutereacute ne pas utiliser les cartes Escap car les moteurs ne renvoient pas une position sous forme drsquoimpulsion mais une vitesse Etant donneacute que nous avions envisageacute un repeacuterage par odomeacutetrie cela compliquait consideacuterablement la tache

Toutefois il faut savoir que cette solution a eacuteteacute testeacutee et fonctionne tregraves bien (bonne preacutecision bonne dynamique) ainsi dans le cas ougrave le repeacuterage ne se fait pas par odomeacutetrie mais des balises exteacuterieures sachez que cette solution est tregraves pratique agrave utiliser En effet pour imposer une vitesse il suffit au microcontrocircleur drsquoappliquer sur un port un mot binaire correspondant agrave la vitesse voulue hellip et crsquoest tout La carte Escap se charge du reste

5 Carte drsquoasservissement numeacuterique laquo artisanale raquo

La carte reacutealiseacutee baseacutee sur un microcontrocircleur PIC 16F877A srsquoest aveacutereacutee fonctionnelle mais les tests drsquoalgorithmes drsquoasservissement nrsquoont pas eacuteteacute effectueacutesEn effet lrsquoutilisation de cette solution neacutecessite un microcontrocircleur deacutedieacute agrave lrsquoasservissement capable de communiquer via un protocole agrave deacutefinir avec la laquo carte megravere raquo (centralisant les retours des autres capteurs du robot et agissant sur les diffeacuterents actionneurs en fonction de la strateacutegie)Or afin de limiter le nombre de microcontrocircleurs sur le robot et du fait que lrsquoon dispose drsquoun budget suffisant nous avons deacutecideacute drsquoessayer drsquoutiliser des composants speacuteciaux reacutealisant lrsquoasservissement

Le systegraveme se deacutecompose en

- Un microcontrocircleur pour appliquer la PWM asservir et commander- Une carte de puissance pour chaque moteur baseacutee sur un LMD18200- Une carte compteur drsquoimpulsions pour les codeurs

Afin de favoriser lrsquointeractiviteacute et les reacuteglages jrsquoai ajouteacute une carte afficheur LCD avec 6 boutons sur la carte microcontrocircleur

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 25: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

Partie C Lrsquoeacutelectronique20 Les batteries

Afin de pouvoir choisir les batteries approprieacutees agrave notre application nous devons dans un premier temps faire une estimation de la consommation drsquoeacutenergie totale avec les pointes de courant envisageacutees dans notre robotIl est agrave noter que nous ne connaissons pas encore en deacutetail tous les eacuteleacutements annexes qui seront implanteacutes dans le robot comme par exemple les capteurs et actionneurs diverses qui seront choisis en fonction des objectifs technologiques atteints ou non de lrsquoassociation et de la strateacutegie finaleDans le but de pouvoir utiliser agrave nouveau dans lrsquoavenir notre base roulante nous avons choisi de surestimer les besoins en eacutenergie de sorte agrave ne pas ecirctre pris au deacutepourvu

La consommation pourrait se deacutecomposer ainsi - 2 moteurs de 24V sous 21A soit 1008 Watts pendant 100 du temps- 3 actionneurs de 21 Watts chacun soit 63 Watts pendant 50 du temps- 3A pour lrsquoeacutelectronique sous 5V soit 15 Watts pendant 100 du temps (Asservissement carte de commandes capteurs)

Ce qui nous fait au total une consommation maximale ~180 WattsLa consommation permanente devrait ecirctre ~147 Watts permanents il faut donc que les batteries puissent deacutebiter un courant de ~6 A sous 24 V durant le fonctionnement du robot

Apregraves une longue recherche on a pu reacutealiser le tableau comparatif des batteries suivant

typeDensiteacute

deacutenergie (WhKg)

Densiteacute deacutenergie (WhL)

auto-deacutecharge (mois)

voltage dune cellule (V)

temps de charge rapide

plomb 35 111 5 agrave 10 2 8h agrave 15h

NiCd (Nickel Cadnium) 50 94 10 agrave 20 12 1h30min

NiMH (Nickel Metal Hydride) 80 135 20 agrave 30 13 2h agrave 4h

Lithium Ion 100 196 5 agrave 10 36 2h agrave 4h

Lithium polymer 150 200 5 agrave 10 36 2h agrave 4h

AlKaline rechargeable 80 15 2h agrave 3h

type

cycle de charge-deacutecharge avant

que capaciteacute passe de 100 agrave

80

Courant max Courant max pic effet meacutemoire estimation

(euroWh) prixcycles

plomb 200 agrave 300 02C 05C M 0895 0003

NiCd (Nickel Cadnium) 1500 1C 20C H 416 0003

NiMH (Nickel Metal Hydride) 300 agrave 500 05C 5C L 2 0004

Lithium Ion 500 agrave 1000 1C 2C L 8 0008

Lithium polymer 300 agrave 500 1C 2C agrave 5C L 32 0006

AlKaline rechargeable 50 02C 05C H 178 0036

Effet meacutemoire L (Low) M (Medium) H (High)Courant max C signifie capaciteacute par exemple une batterie qui peut deacutelivrer un courant max de 1C de 4Ah pourra donc deacutelivrer 4A au maximum sans risque de deacuteteacuterioration

Nous nous sommes inteacuteresseacutes au courant maximum et au temps de charge rapide pour notre choix de batteriesLe type de batterie qui semble le plus approprieacute pour nous est le type Nickel-Cadnium parfaitement adapteacute au pic drsquoappel de courant que provoquent des moteurs pouvant supporter des charges rapides en 1h30min seulement afin de devoir preacutevoir trop de jeux de batteries diffeacuterents

Les batteries LI-Ion ou LI-Polymer preacutesentent une densiteacute eacutenergeacutetique tregraves inteacuteressante mais leur prix est beaucoup plus eacuteleveacute agrave lrsquoachat et de plus dans notre application roulant sur un sol peu accidenteacute la masse pouvant ecirctre transporteacutee est suffisante pour le type NiCd

Les batteries LI-Ion ou LI-Polymer sont plus adapteacutees agrave lrsquoaeacuteromodeacutelisme ou au petit appareil eacutelectroniqueQuant aux batteries au plomb qui sont vraiment bon marcheacute le courant maximum supporteacute est trop faible est supposerait drsquoavoir une forte capaciteacute

Nous voulons avoir une autonomie de 30 minutes il nous faut donc une eacutenergie de 735 WhOr sous 24 V les batteries doivent avoir une capaciteacute de ~3 AhComme les batteries NiCd peuvent deacutebiter un courant maximum de 1C (une fois leur capaciteacute) nous devons donc prendre des batteries de 6Ah sous 24 V ce qui nous donnera une autonomie de 1 heure

Il faudra donc soit acheter un bloc accumulateur NiCd de 24 V 6 Ah srsquoil existe dans le commerce soit le reacutealiser nous mecircme en assemblant diffeacuterents eacuteleacutements

Rappelons que lrsquoassociation en seacuterie permet drsquoadditionner les tensions des eacuteleacutements associeacutes et que lrsquoassociation en parallegravele permet drsquoadditionner les courants deacutebiteacutes

Par exemple des eacuteleacutements de 12 V chacun pour 3 Ah srsquoassocieraient ainsi

Soit deux seacuteries de 20 eacuteleacutements eacutequivalentes agrave 24 V et faisant une capaciteacute de 3 Ah chacune

Il est possible de reacutepartir les accumulateurs en diffeacuterents paquets pour faciliter le rangement dans le robot ou reacutepartir la masse ou eacuteventuellement trouver des packs dans le commerce

Dans le cas de lrsquoUV PR le choix des batteries reste pour le moment sur les NiCd mais pour les essais pratiques on utilisera des batteries au plomb que lrsquoon possegravede deacutejagrave drsquoautant plus que les essais sont reacutealiseacutes avec les moteurs de propulsion et lrsquoasservissement seul ce qui

neacutecessite un deacutebit de courant de 24105 = 4375 A sur 2 batteries soit asymp2187 A

Comme les batteries au plomb peuvent deacutebiter 02C il nous en faudrait des de asymp 109 Ah

Or les essais de la base roulante ne seront que de courtes dureacutees et lrsquoon se contentera donc drsquoutiliser des batteries de 6 Ah pour des raisons de volume mecircme si elles ne sont pas vraiment bien dimensionneacutees

21 La commande des moteurs

Dans un premier temps nous verrons un bref reacutecapitulatif des cartes et modules drsquoasservissement du commerce

Pour la commande les moteurs plusieurs solutions ont eacuteteacute envisageacutees - Un asservissement lsquotout faitrsquo analogique modules laquo Escap raquo- Une solution lsquoartisanalersquo carte avec asservissement numeacuterique- Un asservissement lsquotout faitrsquo numeacuterique circuits laquo LM629 raquo

a Comparatifs des modules drsquoasservissement et calcul des correcteurs

Veille technologique sur les systegravemes drsquoasservissement utiliseacutes par les diffeacuterentes eacutecoles de la coupe E= M6

Le but de cette partie est drsquoeacutetudier les principales techniques drsquoasservissement utiliseacutees par les eacutecoles de la Coupe E=M6 Ce document est loin drsquoecirctre exhaustif et servira de base agrave compleacuteter et actualiser pour les semestres et eacutequipes prochaines

Apregraves une eacutetude sur plus drsquoune trentaine drsquoeacutecoles il ressort trois formes drsquoasservissement la plus utiliseacutee agrave 85 est du type PID en majoriteacute reacuteduit au PI ensuite viennent les microcontrocircleurs PIC associeacutes au PID et les modules AVR nous allons par la suite deacutetailler ces trois solutions Il existe eacutegalement des systegravemes de controcircle dits agrave retour drsquoeacutetat jamais utiliseacutes jusqursquoagrave preacutesent pour la Coupe crsquoest pourquoi nous ne deacutevelopperons pas son approche

3 Systegraveme PID

httpwwwancrorgfichtechactionpidindexhtm

a Principe

Pour pouvoir tester un asservissement il faut dabord reacutealiser une plate-forme de deacuteveloppement le plus geacuteneacuteralement du type suivant Mais pour commencer un brin de theacuteorie illustreacute par des exemples Le scheacutema de principe est repreacutesenteacute ci-dessous

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

Nous avons bien un scheacutema en boucle fermeacutee puisque la sortie du systegraveme est reacuteinjecteacutee dans lentreacutee Les trois blocs bleus correspondent chacun agrave une fonctionnaliteacute Ki est le coefficient inteacutegral Kp le coefficient proportionnel et Kd le coefficient deacuteriveacute Chacun de ces coefficients a une fonctionnaliteacute bien preacutecise Commenccedilons par le plus simple le proportionnel

b Asservissement P

Lasservissement proportionnel est essentiel au fonctionnement du PID Il permet essentiellement de donner de la puissance au moteur Voici quelques reacutesultats dexpeacuterimentations avec Ki=0 et Kd=0

La courbe noire repreacutesente la consigne que lon deacutesire atteindre (Ud) cest un eacutechelon de valeur 32 La courbe bleue repreacutesente la vitesse reacuteelle du systegraveme (Y) Comme vous pouvez le constater plus Kp est grand plus le systegraveme converge vite vers sa valeur finale Mais en contrepartie pour des valeurs de Kp trop grandes le systegraveme oscille Mais lagrave nest pas notre plus gros problegraveme en effet sur ces courbes on voit nettement que la vitesse du moteur natteint jamais la vitesse deacutesireacutee Cest ce que lon appelle lerreur statique elle correspond agrave la diffeacuterence entre la vitesse reacuteelle et la vitesse deacutesireacutee en reacutegime eacutetablie (une fois que le systegraveme sest stabiliseacute) Pour compenser cette erreur statique on rajoute le terme inteacutegral

c Asservissement PI

Le correcteur inteacutegral sert principalement agrave supprimer lerreur statique Lideacutee principale est de charger ou inteacutegrer lerreur depuis le deacutebut et dajouter cette erreur agrave la consigne jusquagrave ce quelle devienne nulle Lorsque cette erreur est nulle le terme inteacutegral se stabilise et il compense parfaitement lerreur entre la consigne et la vitesse reacuteelle Deacutemonstration en image

On voit cette fois-ci que le terme inteacutegral a bien fonctionneacute et que lerreur statique est nulle On constate aussi que plus le gain Ki est grand plus le systegraveme converge vite En revanche plus Ki est grand plus le systegraveme oscille et plus le deacutepassement est grand Sur des asservissements en position le terme deacuteriveacute permet de diminuer le deacutepassement et les oscillations Nous allons voir que dans notre cas nous avons quelques problegravemes

d Asservissement PID ou agrave avance de phase

On a donc rajouteacute le terme deacuteriveacute comme tout bon livre dautomatique le preacuteconise et voici les reacutesultats

Cette fois ci jai choisi de repreacutesenter la tension appliqueacutee au moteur (U) le problegraveme est bien plus flagrant ici Vous voyez que lorsque lon ajoute le terme deacuteriveacute la commande est extrecircmement bruiteacutee En reacutealiteacute on somme agrave la commande la deacuteriveacutee de la vitesse reacuteelle que lon multiplie par un gain Kd La deacuteriveacutee dune vitesse est une acceacuteleacuteration cela signifie que lon amplifie tous les bruits dacceacuteleacuteration et en plus on les multiplient par un gain Kd Donc rajoute du bruit amplifieacute dans la commande Alors pourquoi mettent t-ils ce terme deacuteriveacutee dans les livres Simplement parce que ce bruit est typique des asservissement en vitesse Sur des asservissements en position ce problegraveme est moins freacutequent car la deacuteriveacutee de la position est la vitesse

Ici le problegraveme eacutetait visible parce que nous avons reacutealiseacute toutes ces courbes sur un systegraveme reacuteel Si nous avions simuleacute ces reacutesultats lacceacuteleacuteration naurait pas eacuteteacute bruiteacutee et les courbes auraient eacuteteacute parfaites Pour impleacutementer ce PID sur notre robot il a fallu programmer en numeacuterique une deacuteriveacutee et une inteacutegrale

e PID numeacuterique et reacuteglage

Notre premier problegraveme est de programmer le terme inteacutegral Il existe une meacutethode qui consiste agrave estimer la surface entre deux eacutechantillons mais dans notre cas nous avons des problegravemes dus aux bruits et agrave la freacutequence deacutechantillonnage Alors il faut sommer toutes les erreurs depuis de deacutebut

Notre second problegraveme est de programmer le terme deacuteriveacute La meacutethode ici est de calculer la pente entre deux eacutechantillons de e Theacuteoriquement cela revient agrave faire le calcul suivant

Avec la peacuteriode deacutechantillonnage Pour faire un asservissement numeacuterique il faut impeacuterativement avoir une peacuteriode fixe Pour gagner du temps de calcul geacuteneacuteralement on inteacutegre directement dans le gain Kd

Voici un lalgorithme exemple

Ti = 0 Initialise le terme inteacutegral

for ( i=1 i lt= Nb_cycles i++ )

Init_timers (1) Initialise le timer agrave notre peacuteriode 1 ms

Y = Codeur () Stoque la valeur du codeur dans Y Rst_codeur () Remet le codeur agrave zeacutero Ud = Consigne () Mise agrave jour de la consigne e_old=e Stoque e(t-1) e = Ud - Y Calcul de lerreur Ti = Ti + e Calcul de linteacutegral Calcul du PID U = Kp e Terme proportionnel

+ Ki Ti Terme inteacutegral + Kd ( e - e_old ) Terme deacuteriveacute Moteur (U) On applique la consigne

while ( end_timer() ) On attend la fin de la peacuteriode

Pour le reacuteglage des gains Kp Ki et Kd il existe diffeacuterentes meacutethodes Ici nous lavons fait de maniegravere empirique et le reacutesultats est plutocirct bon Linconveacutenient de ces meacutethodes est quelles demandent un modegravele du systegraveme ce qui est geacuteneacuteralement dur agrave produire Il existe

aussi des composants programmables qui permettent de faire directement lasservissement numeacuterique (HCTL 1100 LM629) Ils sont exactement baseacutes sur la meacutethode preacutesenteacutee ici

Pour ce qui est du reacuteglage des correcteurs lrsquooptimal est drsquoutiliser la meacutethode de lrsquooptimum dissymeacutetrique une fois que lrsquoon agrave reacutealiseacute le modegravele du systegraveme La plus part des eacutecoles ne reacutealisent pas ce modegravele et ce limite donc agrave une correction empirique en reacutealisant des tests ou en utilisant la meacutethode Ziegler-Nichols agrave partir de la reacuteponse agrave un eacutechelon de tension

Par la suite nous rappellerons les meacutethodes de Ziegler-Nichols et de lrsquooptimum dissymeacutetrique

f Les meacutethodes de Ziegler-Nichols

Ces meacutethodes fournissent des reacuteglages pour des correcteurs de type PID (pouvant ne comporter quune action Proportionnelle une action Proportionnelle et une action Inteacutegrale ou les 3 actions simultaneacutement) dont la structure est la suivante

bull MEacuteTHODE DE ZIEGLER NICHOLS TEMPORELLE

Elle est adapteacutee aux systegravemes stables en boucle ouverte qui ont une reacuteponse apeacuteriodique La reacuteponse agrave un eacutechelon unitaire du systegraveme physique doit ecirctre enregistreacutee Diffeacuterentes caracteacuteristiques de la reacuteponse obtenue sont mesureacutees

Le modegravele approcheacute utiliseacutee par Ziegler Nichols comporte une constante de temps et un retard pur ou bien un retard pur et un inteacutegrateur

Si le systegraveme physique comporte un inteacutegrateur les mesures de a et de L demeurent disponibles sur le deacutebut de la reacuteponse

Les reacuteglages suggeacutereacutes par la meacutethode temporelle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 1a - -correcteur PI 09a 3L -

correcteur PID 12a 2L L2Concernant le raffinement des reacuteglages augmenter Kp ou diminuer Ti augment les

oscillations de la sortie

bull MEacuteTHODE DE ZIEGLER NICHOLS FREacuteQUENTIELLE

Cette meacutethode convient particuliegraverement bien aux systegravemes instables en boucle ouverte pour lesquels la meacutethode temporelle nest pas envisageable Lexpeacuterimentation se fait sur le systegraveme boucleacute avec un simple gain proportionnel qui doit ecirctre stable Le principe est de modifier la valeur du gain par essai-erreur jusquagrave atteindre la limite de stabiliteacute (pheacutenomegravene de pompage) Il reste agrave relever le gain limite K0 obtenu et agrave mesurer la peacuteriode T0 des oscillations de la reacuteponse obtenue

Les reacuteglages suggeacutereacutes par la meacutethode freacutequentielle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 05 K0 - -correcteur PI 045 K0 08 T0 -

correcteur PID 06 K0 05 T0 0125 T0

A la page Internet suivante vous trouverez un simulateur de cette meacutethode

httpwww-hadocensieginpgfrhadocateliersreglageEmpCorrReglEmpCorrDroithtml

g Meacutethode de lrsquooptimum dyssimeacutetique (voir poly MC06 Chap 5 et 8)

Cette meacutethode srsquoapplique une fois le modegravele reacutealiseacute et mis sous la forme drsquoun second ordre

et on obtient le correcteur PI

pour une surtension deacutesireacutee QdB

Q = 10^(QdB20)λ= radic(Qsup2(Qsup2-1))Δφ = arcos (1 λ)α= ((1+sin(Δφ))cos(Δφ))sup2ωN= ωQαω0= ωQradicαKP= ω0 λ KQ

4 Les microcontrocircleurs

a Avant propos

Cette fiche se veut ecirctre sous la forme dun projet Un projet non termineacute ougrave chacun peut apporter sa contribution (ameacuteliorations adaptations corrections etc)De ce fait ces pages sont ameneacutees agrave eacutevoluer et vous-mecircme pourrez participer agrave leur eacutevolution

Pourquoi avoir choisit un tel mode de travail Tout simplement parce que le sujet est vaste et que des variations sont possibles suivant lutilisation quen feront les diffeacuterentes personnes

Le but de ce projet est de reacutealiser une double asservissement de vitesse (type PID) de deux moteurs sur un seul PIC (type 16F877) Lutiliteacute majeure eacutetant de faire rouler un robot bien droit et agrave la bonne vitesse A quoi ccedila sert plus preacuteciseacutement

Avec un seul PIC ce projet permet aux roboticiens amateurs et chevronneacutes de reacutealiser facilement leur asservissement de vitesse de moteurs agrave courant continu (en geacuteneacuteral les moteurs de propulsions de leur robot mais ccedila peut ecirctre bien sucircr dautres moteurs) La commande de lasservissement pourra se faire agrave terme en liaison seacuterie (deacutejagrave fait) I2C ou par bus ISA

b Avantages

Il existe bien sucircr dautres systegravemes qui gegraverent un asservissement de vitesses Des systegravemes professionnels existent comme les LM629 Ils ont linconveacutenient decirctre cher (et ce pour un seul moteur) et relativement complexes

Pourquoi chercher un fusil pour chasser des moustiques Le double asservissement sur PIC vous coucircte le prix dun PIC soit environ 15Euro pour un 16F877 actuellement et ce pour 2 moteurs Ce double asservissement se veut relativement simple De plus vous pouvez en modifier le programme et ladapter agrave vos besoins

c Inconveacutenients

Les personnes qui auront les moyens preacutefeacutererons opter pour un systegraveme professionnel certainement pour des raisons de fiabiliteacute mais cest agrave leurs risques et peacuterils -)La puissance du PIC eacutetant limiteacutee il ne peut pas reacutealiser des PID trop rapides ou trop complexes Il y a en particulier une limitation sur le nombre dimpulsions par seconde quil est capable de geacuterer

Le langage utiliseacute eacutetant le C il faut une licence du logiciel pour pouvoir modifier et recompiler le code source c Mais le projet se veut geacuteneacuterique Une version donneacutee pourra ecirctre utiliseacute sans recompilation en respectant quelques contraintes

d Asservissement

En fait on pourrait imaginer quil suffirait denvoyer au moteur une puissance constante pour quil tourne tout le temps agrave la mecircme vitesse Ce nest pas vrai du tout Tout dabord 2 moteurs dune mecircme seacuterie nauront pas forceacutement le mecircme comportement Ensuite parce que les niveaux de tension ou dautre diffeacuterences eacutelectriques peuvent jouer Enfin parce que des influences exteacuterieures (obstacles frein meacutecanique du robot) peuvent jouer

Du coup il est tregraves difficile de faire aller un moteur agrave la vitesse voulue Parfois ce nest pas gecircnant mais ccedila peut lecirctre Un exemple classique est le robot avec 2 roues motrices type char une configuration qui est tregraves courante Mais pour que ce robot aille droit il faut que les 2 moteurs aillent exactement agrave la mecircme vitesse

La solution est de faire un asservissement Cest a dire moduler dynamiquement la puissance envoyeacute aux moteurs suivant leur vitesse mesureacutee afin dadapter celle-ci agrave ce qui est deacutesireacuteeCela implique un eacuteleacutement tregraves important pour asservir il faut un capteur de vitesse du moteur En geacuteneacuteral il sagit dun compte-tour qui enverra N impulsions (ou pas) par tour de moteur Ensuite un programme va calculer en fonction de la vitesse mesureacutee du moteur la puissance agrave utiliser

Les asservissements sont constamment en train de chercher leacutequilibre Il faut bien comprendre quils mettent un certain temps agrave latteindre et ce dernier peut aussi ecirctre instable si lasservissement est mal reacutegleacute

Lasservissement quon va utiliser ici est un classique PIDou plus preacuteciseacutement un PI car pour des raisons de vitesses de traitement la composante deacuteriveacutee est laisseacutee de coteacute (mais rien de difficile agrave rajouter)

Le PID ou Proportionnel Inteacutegrale Deacuteriveacute est une meacutethode de calcul dasservissement

Soit Kp Ki et Kd les coefficients proportionnels inteacutegrale et deacuteriveacuteSoit e lerreur Vitesse mesureacutee moins vitesse demandeacuteeSoit Ti le terme inteacutegral dabord initialiseacute agrave 0

Consigne a appliquer (PWM) = Kp e + (1Ki) (Ti += e) + Kd (e - e(t-1))

On pourrait dire des pages et des pages sur le PID et ce nest pas mon but ici Merci de vous reporter au lien ci-dessous

Pour plus de deacutetails sur le PID la page de lANCR httpwwwancrorgfichtechactionpidindexhtmChez les Fribottes la Simulation de Jean-Claude httpwwwwikifreefrWiKiFriindexphpSimulateur20de20PID

e Le pic

Le PIC est un petit microcontrocircleur assez bon marche et simple a programmer comme a utiliser

La aussi je vais pas rentrer dans les deacutetails vous pouvez vous reporter agrave la bdtech du site Fribotte et en particulier aux cours de Bigonoff

Le PIC est ici programmeacute en C voir la page Fribotte ici Lutilisation du langage C permet dalleacuteger consideacuterablement le deacuteveloppement dune application compliqueacutee

2 Module AVR

httpwwwenseirbfr~matzfravrphp

Tregraves peu de renseignement sur ce module sinon ces informations drsquoun eacutetudiant de lrsquoEnseirb

Depuis plusieurs anneacutees je participe agrave la coupe de robotique E=M6 dont lobjectif pour chaque eacutequipe est de fabriquer un robot autonome devant se conformer agrave un regraveglement Pour plus dinfos vous pouvez vous rendre sur le site de mon eacutequipe Microb Technology ou bien sur le site de Planegravete Sciences lorganisme beacuteneacutevole qui organise cette compeacutetition

Jai deacutecouvert en 2001 les microcontrocircleurs Atmel AVR auxquels je me suis beaucoup attacheacute dune part parce quils sont assez performants pour des microcontrocircleurs 8 bits mais aussi et surtout car le fameux compilateur libre GCC est capable de compiler du code C pour ces petites becirctes Il existe de surcroicirct plusieurs outils libres permettant de les programmer de les simuler etc

Le but de ce projet est donc de deacutevelopper des modules servant dinterface geacuteneacuterique avec le hardware du microcontrocircleur quel que soit la version (par exemple les UART inclus dans les AVR AtMega sont diffeacuterents de ceux preacutesents dans les petits AVR) et de deacutevelopper des modules utiles pour certaines utilisations usuelles et pas seulement pour la coupe E=M6 (codage de hamming asservissement chiffrement etc)

Vous pouvez contacter leacutequipe de deacuteveloppement agrave avr-devdroids-corporg Pour le moment aucune release na eacuteteacute faite mais le travail est deacutejagrave bien avanceacute Chaque soir un screenshot du CVS est reacutealiseacute Il peut ne pas compiler mais normalement ccedila devrait fonctionner Voici le lien

3 Modules drsquoasservissement analogique laquo Escap raquo

Nous avons essayeacute de reacutecupeacuterer les cartes de commande Escap pour moteurs Escap qui avaient eacuteteacute utiliseacutees en 96 et 98 avec succegraves

Nous les avons monteacutes sur une base roulante qui pesait en tout 74 kgVoici grosso-modo leurs avantages et leurs inconveacutenients (pour les notices techniques voir le rapport 96 ou 98)

a Avantages

Cette carte inclut directement un asservissement avec correcteur PI la commande de puissance les ponts en H

Elle est tregraves facile agrave utiliser Elle est speacutecialement conccedilue pour les moteurs Escap que nous avons donc

parfaitement adapteacutee

b Inconveacutenients

Les moteurs ne fonctionnent correctement que sous 24v Les cartes et les moteurs semblent assez gourment Les cartes nantis de gros radiateurs sont relativement encombrantes Les tachymegravetres monteacutes sur les moteurs ne donnent pas une indication de position

mais de vitesse (qui plus est en analogique)

Nous avons preacutefeacutereacute refaire la partie commande car celle de 1996 souffrait de quelques deacutefauts (cf rapport 1996)

La conversion numeacuterique analogique

Pour reacutealiser la conversion numeacuterique analogique nous avons choisit un pont agrave reacutesistance R-2R

Nous pouvons consideacuterer que chaque bit est relieacute agrave un geacuteneacuterateur ideacuteal de tension (qui deacutelivre 0v ou 5v) Par conseacutequent la reacutesistance eacutequivalente quelque soit lrsquoeacutetat des bits et quelques soit le nombre de bits vue entre la sortie et la masse sera eacutegal agrave R

La tension Vs en fonction de lrsquoeacutetat des bits sera

Ce type de CAN eacutetant tregraves classique nous nrsquoindiquerons pas les deacutemonstrations toutefois vous pourrez les trouver tregraves facilement sur Internet ou sur le Cd-rom drsquoannexes joint au dossier

Le montage de Thevenin eacutequivalent est donc

Nous avons jugeacute qursquoune discreacutetisation sur 8 bits eacutetait un peu superflu crsquoest pourquoi nous nous contenterons de 4 bits (ce qui repreacutesentent quand mecircme 16 niveaux de vitesse)

bull Lrsquoadaptation du niveau de tension

Nous avons agrave la sortie du CAN une tension qui srsquoeacutetend de 0 agrave 5v or la commande des cartes Escap ce fait entre -5v et +5v

On peut voir cette adaptation comme lrsquoajout drsquoun offset de -25v et une amplification de gain 2

Voici le montage reacutealisant cette conversion

M1 est un montage suiveur qui lsquorecopiersquo la tension aux bornes de P1 mais sous une impeacutedance constante et eacutegale agrave 4R En 1996 lrsquoeacutequipe avait brancheacute P1 directement sur M3 mais cela a pour inconveacutenient de faire varier agrave la fois lrsquooffset et la penteLe potentiomegravetre P1 permet drsquoajuster lrsquooffset (permet par conseacutequent de reacutegler lrsquoarrecirct complet de moteur) (La valeur theacuteorique de lrsquooffset est 5V (cf formule en M3))

M2 est aussi un montage suiveur Le potentiomegravetre P2 permet drsquoajuster la pente (qui doit avoir un coefficient directeur de 2) Comme M2 est connecteacute au CAN dont la reacutesistance interne est de R P2 doit ecirctre a peut precirct eacutegal agrave R de la sorte la branche aura une reacutesistance eacutequivalente de 2R

M3 Sommateur (Vs = - 2 (Ve + Voffset))

Qursquoelle valeur choisir pour R

Theacuteoriquement on peut choisir nrsquoimporte quelle valeur pour R mais en pratique si R est trop petite une intensiteacute importante serait consommeacutee sans raison et si R est trop grande la forte impeacutedance du montage le rendra tregraves sensible aux parasites (secteur moteurshellip)Ce montage a eacuteteacute testeacute et fonctionne correctement pour R=5k les amplificateurs opeacuterationnels utiliseacutes sont des LM324 mais drsquoautres seraient tout agrave fait envisageables (peu de contraintes de vitesse et de tensions de deacutechets)

4 Conclusion

Nous avons preacutefeacutereacute ne pas utiliser les cartes Escap car les moteurs ne renvoient pas une position sous forme drsquoimpulsion mais une vitesse Etant donneacute que nous avions envisageacute un repeacuterage par odomeacutetrie cela compliquait consideacuterablement la tache

Toutefois il faut savoir que cette solution a eacuteteacute testeacutee et fonctionne tregraves bien (bonne preacutecision bonne dynamique) ainsi dans le cas ougrave le repeacuterage ne se fait pas par odomeacutetrie mais des balises exteacuterieures sachez que cette solution est tregraves pratique agrave utiliser En effet pour imposer une vitesse il suffit au microcontrocircleur drsquoappliquer sur un port un mot binaire correspondant agrave la vitesse voulue hellip et crsquoest tout La carte Escap se charge du reste

5 Carte drsquoasservissement numeacuterique laquo artisanale raquo

La carte reacutealiseacutee baseacutee sur un microcontrocircleur PIC 16F877A srsquoest aveacutereacutee fonctionnelle mais les tests drsquoalgorithmes drsquoasservissement nrsquoont pas eacuteteacute effectueacutesEn effet lrsquoutilisation de cette solution neacutecessite un microcontrocircleur deacutedieacute agrave lrsquoasservissement capable de communiquer via un protocole agrave deacutefinir avec la laquo carte megravere raquo (centralisant les retours des autres capteurs du robot et agissant sur les diffeacuterents actionneurs en fonction de la strateacutegie)Or afin de limiter le nombre de microcontrocircleurs sur le robot et du fait que lrsquoon dispose drsquoun budget suffisant nous avons deacutecideacute drsquoessayer drsquoutiliser des composants speacuteciaux reacutealisant lrsquoasservissement

Le systegraveme se deacutecompose en

- Un microcontrocircleur pour appliquer la PWM asservir et commander- Une carte de puissance pour chaque moteur baseacutee sur un LMD18200- Une carte compteur drsquoimpulsions pour les codeurs

Afin de favoriser lrsquointeractiviteacute et les reacuteglages jrsquoai ajouteacute une carte afficheur LCD avec 6 boutons sur la carte microcontrocircleur

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 26: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

Apregraves une longue recherche on a pu reacutealiser le tableau comparatif des batteries suivant

typeDensiteacute

deacutenergie (WhKg)

Densiteacute deacutenergie (WhL)

auto-deacutecharge (mois)

voltage dune cellule (V)

temps de charge rapide

plomb 35 111 5 agrave 10 2 8h agrave 15h

NiCd (Nickel Cadnium) 50 94 10 agrave 20 12 1h30min

NiMH (Nickel Metal Hydride) 80 135 20 agrave 30 13 2h agrave 4h

Lithium Ion 100 196 5 agrave 10 36 2h agrave 4h

Lithium polymer 150 200 5 agrave 10 36 2h agrave 4h

AlKaline rechargeable 80 15 2h agrave 3h

type

cycle de charge-deacutecharge avant

que capaciteacute passe de 100 agrave

80

Courant max Courant max pic effet meacutemoire estimation

(euroWh) prixcycles

plomb 200 agrave 300 02C 05C M 0895 0003

NiCd (Nickel Cadnium) 1500 1C 20C H 416 0003

NiMH (Nickel Metal Hydride) 300 agrave 500 05C 5C L 2 0004

Lithium Ion 500 agrave 1000 1C 2C L 8 0008

Lithium polymer 300 agrave 500 1C 2C agrave 5C L 32 0006

AlKaline rechargeable 50 02C 05C H 178 0036

Effet meacutemoire L (Low) M (Medium) H (High)Courant max C signifie capaciteacute par exemple une batterie qui peut deacutelivrer un courant max de 1C de 4Ah pourra donc deacutelivrer 4A au maximum sans risque de deacuteteacuterioration

Nous nous sommes inteacuteresseacutes au courant maximum et au temps de charge rapide pour notre choix de batteriesLe type de batterie qui semble le plus approprieacute pour nous est le type Nickel-Cadnium parfaitement adapteacute au pic drsquoappel de courant que provoquent des moteurs pouvant supporter des charges rapides en 1h30min seulement afin de devoir preacutevoir trop de jeux de batteries diffeacuterents

Les batteries LI-Ion ou LI-Polymer preacutesentent une densiteacute eacutenergeacutetique tregraves inteacuteressante mais leur prix est beaucoup plus eacuteleveacute agrave lrsquoachat et de plus dans notre application roulant sur un sol peu accidenteacute la masse pouvant ecirctre transporteacutee est suffisante pour le type NiCd

Les batteries LI-Ion ou LI-Polymer sont plus adapteacutees agrave lrsquoaeacuteromodeacutelisme ou au petit appareil eacutelectroniqueQuant aux batteries au plomb qui sont vraiment bon marcheacute le courant maximum supporteacute est trop faible est supposerait drsquoavoir une forte capaciteacute

Nous voulons avoir une autonomie de 30 minutes il nous faut donc une eacutenergie de 735 WhOr sous 24 V les batteries doivent avoir une capaciteacute de ~3 AhComme les batteries NiCd peuvent deacutebiter un courant maximum de 1C (une fois leur capaciteacute) nous devons donc prendre des batteries de 6Ah sous 24 V ce qui nous donnera une autonomie de 1 heure

Il faudra donc soit acheter un bloc accumulateur NiCd de 24 V 6 Ah srsquoil existe dans le commerce soit le reacutealiser nous mecircme en assemblant diffeacuterents eacuteleacutements

Rappelons que lrsquoassociation en seacuterie permet drsquoadditionner les tensions des eacuteleacutements associeacutes et que lrsquoassociation en parallegravele permet drsquoadditionner les courants deacutebiteacutes

Par exemple des eacuteleacutements de 12 V chacun pour 3 Ah srsquoassocieraient ainsi

Soit deux seacuteries de 20 eacuteleacutements eacutequivalentes agrave 24 V et faisant une capaciteacute de 3 Ah chacune

Il est possible de reacutepartir les accumulateurs en diffeacuterents paquets pour faciliter le rangement dans le robot ou reacutepartir la masse ou eacuteventuellement trouver des packs dans le commerce

Dans le cas de lrsquoUV PR le choix des batteries reste pour le moment sur les NiCd mais pour les essais pratiques on utilisera des batteries au plomb que lrsquoon possegravede deacutejagrave drsquoautant plus que les essais sont reacutealiseacutes avec les moteurs de propulsion et lrsquoasservissement seul ce qui

neacutecessite un deacutebit de courant de 24105 = 4375 A sur 2 batteries soit asymp2187 A

Comme les batteries au plomb peuvent deacutebiter 02C il nous en faudrait des de asymp 109 Ah

Or les essais de la base roulante ne seront que de courtes dureacutees et lrsquoon se contentera donc drsquoutiliser des batteries de 6 Ah pour des raisons de volume mecircme si elles ne sont pas vraiment bien dimensionneacutees

21 La commande des moteurs

Dans un premier temps nous verrons un bref reacutecapitulatif des cartes et modules drsquoasservissement du commerce

Pour la commande les moteurs plusieurs solutions ont eacuteteacute envisageacutees - Un asservissement lsquotout faitrsquo analogique modules laquo Escap raquo- Une solution lsquoartisanalersquo carte avec asservissement numeacuterique- Un asservissement lsquotout faitrsquo numeacuterique circuits laquo LM629 raquo

a Comparatifs des modules drsquoasservissement et calcul des correcteurs

Veille technologique sur les systegravemes drsquoasservissement utiliseacutes par les diffeacuterentes eacutecoles de la coupe E= M6

Le but de cette partie est drsquoeacutetudier les principales techniques drsquoasservissement utiliseacutees par les eacutecoles de la Coupe E=M6 Ce document est loin drsquoecirctre exhaustif et servira de base agrave compleacuteter et actualiser pour les semestres et eacutequipes prochaines

Apregraves une eacutetude sur plus drsquoune trentaine drsquoeacutecoles il ressort trois formes drsquoasservissement la plus utiliseacutee agrave 85 est du type PID en majoriteacute reacuteduit au PI ensuite viennent les microcontrocircleurs PIC associeacutes au PID et les modules AVR nous allons par la suite deacutetailler ces trois solutions Il existe eacutegalement des systegravemes de controcircle dits agrave retour drsquoeacutetat jamais utiliseacutes jusqursquoagrave preacutesent pour la Coupe crsquoest pourquoi nous ne deacutevelopperons pas son approche

3 Systegraveme PID

httpwwwancrorgfichtechactionpidindexhtm

a Principe

Pour pouvoir tester un asservissement il faut dabord reacutealiser une plate-forme de deacuteveloppement le plus geacuteneacuteralement du type suivant Mais pour commencer un brin de theacuteorie illustreacute par des exemples Le scheacutema de principe est repreacutesenteacute ci-dessous

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

Nous avons bien un scheacutema en boucle fermeacutee puisque la sortie du systegraveme est reacuteinjecteacutee dans lentreacutee Les trois blocs bleus correspondent chacun agrave une fonctionnaliteacute Ki est le coefficient inteacutegral Kp le coefficient proportionnel et Kd le coefficient deacuteriveacute Chacun de ces coefficients a une fonctionnaliteacute bien preacutecise Commenccedilons par le plus simple le proportionnel

b Asservissement P

Lasservissement proportionnel est essentiel au fonctionnement du PID Il permet essentiellement de donner de la puissance au moteur Voici quelques reacutesultats dexpeacuterimentations avec Ki=0 et Kd=0

La courbe noire repreacutesente la consigne que lon deacutesire atteindre (Ud) cest un eacutechelon de valeur 32 La courbe bleue repreacutesente la vitesse reacuteelle du systegraveme (Y) Comme vous pouvez le constater plus Kp est grand plus le systegraveme converge vite vers sa valeur finale Mais en contrepartie pour des valeurs de Kp trop grandes le systegraveme oscille Mais lagrave nest pas notre plus gros problegraveme en effet sur ces courbes on voit nettement que la vitesse du moteur natteint jamais la vitesse deacutesireacutee Cest ce que lon appelle lerreur statique elle correspond agrave la diffeacuterence entre la vitesse reacuteelle et la vitesse deacutesireacutee en reacutegime eacutetablie (une fois que le systegraveme sest stabiliseacute) Pour compenser cette erreur statique on rajoute le terme inteacutegral

c Asservissement PI

Le correcteur inteacutegral sert principalement agrave supprimer lerreur statique Lideacutee principale est de charger ou inteacutegrer lerreur depuis le deacutebut et dajouter cette erreur agrave la consigne jusquagrave ce quelle devienne nulle Lorsque cette erreur est nulle le terme inteacutegral se stabilise et il compense parfaitement lerreur entre la consigne et la vitesse reacuteelle Deacutemonstration en image

On voit cette fois-ci que le terme inteacutegral a bien fonctionneacute et que lerreur statique est nulle On constate aussi que plus le gain Ki est grand plus le systegraveme converge vite En revanche plus Ki est grand plus le systegraveme oscille et plus le deacutepassement est grand Sur des asservissements en position le terme deacuteriveacute permet de diminuer le deacutepassement et les oscillations Nous allons voir que dans notre cas nous avons quelques problegravemes

d Asservissement PID ou agrave avance de phase

On a donc rajouteacute le terme deacuteriveacute comme tout bon livre dautomatique le preacuteconise et voici les reacutesultats

Cette fois ci jai choisi de repreacutesenter la tension appliqueacutee au moteur (U) le problegraveme est bien plus flagrant ici Vous voyez que lorsque lon ajoute le terme deacuteriveacute la commande est extrecircmement bruiteacutee En reacutealiteacute on somme agrave la commande la deacuteriveacutee de la vitesse reacuteelle que lon multiplie par un gain Kd La deacuteriveacutee dune vitesse est une acceacuteleacuteration cela signifie que lon amplifie tous les bruits dacceacuteleacuteration et en plus on les multiplient par un gain Kd Donc rajoute du bruit amplifieacute dans la commande Alors pourquoi mettent t-ils ce terme deacuteriveacutee dans les livres Simplement parce que ce bruit est typique des asservissement en vitesse Sur des asservissements en position ce problegraveme est moins freacutequent car la deacuteriveacutee de la position est la vitesse

Ici le problegraveme eacutetait visible parce que nous avons reacutealiseacute toutes ces courbes sur un systegraveme reacuteel Si nous avions simuleacute ces reacutesultats lacceacuteleacuteration naurait pas eacuteteacute bruiteacutee et les courbes auraient eacuteteacute parfaites Pour impleacutementer ce PID sur notre robot il a fallu programmer en numeacuterique une deacuteriveacutee et une inteacutegrale

e PID numeacuterique et reacuteglage

Notre premier problegraveme est de programmer le terme inteacutegral Il existe une meacutethode qui consiste agrave estimer la surface entre deux eacutechantillons mais dans notre cas nous avons des problegravemes dus aux bruits et agrave la freacutequence deacutechantillonnage Alors il faut sommer toutes les erreurs depuis de deacutebut

Notre second problegraveme est de programmer le terme deacuteriveacute La meacutethode ici est de calculer la pente entre deux eacutechantillons de e Theacuteoriquement cela revient agrave faire le calcul suivant

Avec la peacuteriode deacutechantillonnage Pour faire un asservissement numeacuterique il faut impeacuterativement avoir une peacuteriode fixe Pour gagner du temps de calcul geacuteneacuteralement on inteacutegre directement dans le gain Kd

Voici un lalgorithme exemple

Ti = 0 Initialise le terme inteacutegral

for ( i=1 i lt= Nb_cycles i++ )

Init_timers (1) Initialise le timer agrave notre peacuteriode 1 ms

Y = Codeur () Stoque la valeur du codeur dans Y Rst_codeur () Remet le codeur agrave zeacutero Ud = Consigne () Mise agrave jour de la consigne e_old=e Stoque e(t-1) e = Ud - Y Calcul de lerreur Ti = Ti + e Calcul de linteacutegral Calcul du PID U = Kp e Terme proportionnel

+ Ki Ti Terme inteacutegral + Kd ( e - e_old ) Terme deacuteriveacute Moteur (U) On applique la consigne

while ( end_timer() ) On attend la fin de la peacuteriode

Pour le reacuteglage des gains Kp Ki et Kd il existe diffeacuterentes meacutethodes Ici nous lavons fait de maniegravere empirique et le reacutesultats est plutocirct bon Linconveacutenient de ces meacutethodes est quelles demandent un modegravele du systegraveme ce qui est geacuteneacuteralement dur agrave produire Il existe

aussi des composants programmables qui permettent de faire directement lasservissement numeacuterique (HCTL 1100 LM629) Ils sont exactement baseacutes sur la meacutethode preacutesenteacutee ici

Pour ce qui est du reacuteglage des correcteurs lrsquooptimal est drsquoutiliser la meacutethode de lrsquooptimum dissymeacutetrique une fois que lrsquoon agrave reacutealiseacute le modegravele du systegraveme La plus part des eacutecoles ne reacutealisent pas ce modegravele et ce limite donc agrave une correction empirique en reacutealisant des tests ou en utilisant la meacutethode Ziegler-Nichols agrave partir de la reacuteponse agrave un eacutechelon de tension

Par la suite nous rappellerons les meacutethodes de Ziegler-Nichols et de lrsquooptimum dissymeacutetrique

f Les meacutethodes de Ziegler-Nichols

Ces meacutethodes fournissent des reacuteglages pour des correcteurs de type PID (pouvant ne comporter quune action Proportionnelle une action Proportionnelle et une action Inteacutegrale ou les 3 actions simultaneacutement) dont la structure est la suivante

bull MEacuteTHODE DE ZIEGLER NICHOLS TEMPORELLE

Elle est adapteacutee aux systegravemes stables en boucle ouverte qui ont une reacuteponse apeacuteriodique La reacuteponse agrave un eacutechelon unitaire du systegraveme physique doit ecirctre enregistreacutee Diffeacuterentes caracteacuteristiques de la reacuteponse obtenue sont mesureacutees

Le modegravele approcheacute utiliseacutee par Ziegler Nichols comporte une constante de temps et un retard pur ou bien un retard pur et un inteacutegrateur

Si le systegraveme physique comporte un inteacutegrateur les mesures de a et de L demeurent disponibles sur le deacutebut de la reacuteponse

Les reacuteglages suggeacutereacutes par la meacutethode temporelle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 1a - -correcteur PI 09a 3L -

correcteur PID 12a 2L L2Concernant le raffinement des reacuteglages augmenter Kp ou diminuer Ti augment les

oscillations de la sortie

bull MEacuteTHODE DE ZIEGLER NICHOLS FREacuteQUENTIELLE

Cette meacutethode convient particuliegraverement bien aux systegravemes instables en boucle ouverte pour lesquels la meacutethode temporelle nest pas envisageable Lexpeacuterimentation se fait sur le systegraveme boucleacute avec un simple gain proportionnel qui doit ecirctre stable Le principe est de modifier la valeur du gain par essai-erreur jusquagrave atteindre la limite de stabiliteacute (pheacutenomegravene de pompage) Il reste agrave relever le gain limite K0 obtenu et agrave mesurer la peacuteriode T0 des oscillations de la reacuteponse obtenue

Les reacuteglages suggeacutereacutes par la meacutethode freacutequentielle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 05 K0 - -correcteur PI 045 K0 08 T0 -

correcteur PID 06 K0 05 T0 0125 T0

A la page Internet suivante vous trouverez un simulateur de cette meacutethode

httpwww-hadocensieginpgfrhadocateliersreglageEmpCorrReglEmpCorrDroithtml

g Meacutethode de lrsquooptimum dyssimeacutetique (voir poly MC06 Chap 5 et 8)

Cette meacutethode srsquoapplique une fois le modegravele reacutealiseacute et mis sous la forme drsquoun second ordre

et on obtient le correcteur PI

pour une surtension deacutesireacutee QdB

Q = 10^(QdB20)λ= radic(Qsup2(Qsup2-1))Δφ = arcos (1 λ)α= ((1+sin(Δφ))cos(Δφ))sup2ωN= ωQαω0= ωQradicαKP= ω0 λ KQ

4 Les microcontrocircleurs

a Avant propos

Cette fiche se veut ecirctre sous la forme dun projet Un projet non termineacute ougrave chacun peut apporter sa contribution (ameacuteliorations adaptations corrections etc)De ce fait ces pages sont ameneacutees agrave eacutevoluer et vous-mecircme pourrez participer agrave leur eacutevolution

Pourquoi avoir choisit un tel mode de travail Tout simplement parce que le sujet est vaste et que des variations sont possibles suivant lutilisation quen feront les diffeacuterentes personnes

Le but de ce projet est de reacutealiser une double asservissement de vitesse (type PID) de deux moteurs sur un seul PIC (type 16F877) Lutiliteacute majeure eacutetant de faire rouler un robot bien droit et agrave la bonne vitesse A quoi ccedila sert plus preacuteciseacutement

Avec un seul PIC ce projet permet aux roboticiens amateurs et chevronneacutes de reacutealiser facilement leur asservissement de vitesse de moteurs agrave courant continu (en geacuteneacuteral les moteurs de propulsions de leur robot mais ccedila peut ecirctre bien sucircr dautres moteurs) La commande de lasservissement pourra se faire agrave terme en liaison seacuterie (deacutejagrave fait) I2C ou par bus ISA

b Avantages

Il existe bien sucircr dautres systegravemes qui gegraverent un asservissement de vitesses Des systegravemes professionnels existent comme les LM629 Ils ont linconveacutenient decirctre cher (et ce pour un seul moteur) et relativement complexes

Pourquoi chercher un fusil pour chasser des moustiques Le double asservissement sur PIC vous coucircte le prix dun PIC soit environ 15Euro pour un 16F877 actuellement et ce pour 2 moteurs Ce double asservissement se veut relativement simple De plus vous pouvez en modifier le programme et ladapter agrave vos besoins

c Inconveacutenients

Les personnes qui auront les moyens preacutefeacutererons opter pour un systegraveme professionnel certainement pour des raisons de fiabiliteacute mais cest agrave leurs risques et peacuterils -)La puissance du PIC eacutetant limiteacutee il ne peut pas reacutealiser des PID trop rapides ou trop complexes Il y a en particulier une limitation sur le nombre dimpulsions par seconde quil est capable de geacuterer

Le langage utiliseacute eacutetant le C il faut une licence du logiciel pour pouvoir modifier et recompiler le code source c Mais le projet se veut geacuteneacuterique Une version donneacutee pourra ecirctre utiliseacute sans recompilation en respectant quelques contraintes

d Asservissement

En fait on pourrait imaginer quil suffirait denvoyer au moteur une puissance constante pour quil tourne tout le temps agrave la mecircme vitesse Ce nest pas vrai du tout Tout dabord 2 moteurs dune mecircme seacuterie nauront pas forceacutement le mecircme comportement Ensuite parce que les niveaux de tension ou dautre diffeacuterences eacutelectriques peuvent jouer Enfin parce que des influences exteacuterieures (obstacles frein meacutecanique du robot) peuvent jouer

Du coup il est tregraves difficile de faire aller un moteur agrave la vitesse voulue Parfois ce nest pas gecircnant mais ccedila peut lecirctre Un exemple classique est le robot avec 2 roues motrices type char une configuration qui est tregraves courante Mais pour que ce robot aille droit il faut que les 2 moteurs aillent exactement agrave la mecircme vitesse

La solution est de faire un asservissement Cest a dire moduler dynamiquement la puissance envoyeacute aux moteurs suivant leur vitesse mesureacutee afin dadapter celle-ci agrave ce qui est deacutesireacuteeCela implique un eacuteleacutement tregraves important pour asservir il faut un capteur de vitesse du moteur En geacuteneacuteral il sagit dun compte-tour qui enverra N impulsions (ou pas) par tour de moteur Ensuite un programme va calculer en fonction de la vitesse mesureacutee du moteur la puissance agrave utiliser

Les asservissements sont constamment en train de chercher leacutequilibre Il faut bien comprendre quils mettent un certain temps agrave latteindre et ce dernier peut aussi ecirctre instable si lasservissement est mal reacutegleacute

Lasservissement quon va utiliser ici est un classique PIDou plus preacuteciseacutement un PI car pour des raisons de vitesses de traitement la composante deacuteriveacutee est laisseacutee de coteacute (mais rien de difficile agrave rajouter)

Le PID ou Proportionnel Inteacutegrale Deacuteriveacute est une meacutethode de calcul dasservissement

Soit Kp Ki et Kd les coefficients proportionnels inteacutegrale et deacuteriveacuteSoit e lerreur Vitesse mesureacutee moins vitesse demandeacuteeSoit Ti le terme inteacutegral dabord initialiseacute agrave 0

Consigne a appliquer (PWM) = Kp e + (1Ki) (Ti += e) + Kd (e - e(t-1))

On pourrait dire des pages et des pages sur le PID et ce nest pas mon but ici Merci de vous reporter au lien ci-dessous

Pour plus de deacutetails sur le PID la page de lANCR httpwwwancrorgfichtechactionpidindexhtmChez les Fribottes la Simulation de Jean-Claude httpwwwwikifreefrWiKiFriindexphpSimulateur20de20PID

e Le pic

Le PIC est un petit microcontrocircleur assez bon marche et simple a programmer comme a utiliser

La aussi je vais pas rentrer dans les deacutetails vous pouvez vous reporter agrave la bdtech du site Fribotte et en particulier aux cours de Bigonoff

Le PIC est ici programmeacute en C voir la page Fribotte ici Lutilisation du langage C permet dalleacuteger consideacuterablement le deacuteveloppement dune application compliqueacutee

2 Module AVR

httpwwwenseirbfr~matzfravrphp

Tregraves peu de renseignement sur ce module sinon ces informations drsquoun eacutetudiant de lrsquoEnseirb

Depuis plusieurs anneacutees je participe agrave la coupe de robotique E=M6 dont lobjectif pour chaque eacutequipe est de fabriquer un robot autonome devant se conformer agrave un regraveglement Pour plus dinfos vous pouvez vous rendre sur le site de mon eacutequipe Microb Technology ou bien sur le site de Planegravete Sciences lorganisme beacuteneacutevole qui organise cette compeacutetition

Jai deacutecouvert en 2001 les microcontrocircleurs Atmel AVR auxquels je me suis beaucoup attacheacute dune part parce quils sont assez performants pour des microcontrocircleurs 8 bits mais aussi et surtout car le fameux compilateur libre GCC est capable de compiler du code C pour ces petites becirctes Il existe de surcroicirct plusieurs outils libres permettant de les programmer de les simuler etc

Le but de ce projet est donc de deacutevelopper des modules servant dinterface geacuteneacuterique avec le hardware du microcontrocircleur quel que soit la version (par exemple les UART inclus dans les AVR AtMega sont diffeacuterents de ceux preacutesents dans les petits AVR) et de deacutevelopper des modules utiles pour certaines utilisations usuelles et pas seulement pour la coupe E=M6 (codage de hamming asservissement chiffrement etc)

Vous pouvez contacter leacutequipe de deacuteveloppement agrave avr-devdroids-corporg Pour le moment aucune release na eacuteteacute faite mais le travail est deacutejagrave bien avanceacute Chaque soir un screenshot du CVS est reacutealiseacute Il peut ne pas compiler mais normalement ccedila devrait fonctionner Voici le lien

3 Modules drsquoasservissement analogique laquo Escap raquo

Nous avons essayeacute de reacutecupeacuterer les cartes de commande Escap pour moteurs Escap qui avaient eacuteteacute utiliseacutees en 96 et 98 avec succegraves

Nous les avons monteacutes sur une base roulante qui pesait en tout 74 kgVoici grosso-modo leurs avantages et leurs inconveacutenients (pour les notices techniques voir le rapport 96 ou 98)

a Avantages

Cette carte inclut directement un asservissement avec correcteur PI la commande de puissance les ponts en H

Elle est tregraves facile agrave utiliser Elle est speacutecialement conccedilue pour les moteurs Escap que nous avons donc

parfaitement adapteacutee

b Inconveacutenients

Les moteurs ne fonctionnent correctement que sous 24v Les cartes et les moteurs semblent assez gourment Les cartes nantis de gros radiateurs sont relativement encombrantes Les tachymegravetres monteacutes sur les moteurs ne donnent pas une indication de position

mais de vitesse (qui plus est en analogique)

Nous avons preacutefeacutereacute refaire la partie commande car celle de 1996 souffrait de quelques deacutefauts (cf rapport 1996)

La conversion numeacuterique analogique

Pour reacutealiser la conversion numeacuterique analogique nous avons choisit un pont agrave reacutesistance R-2R

Nous pouvons consideacuterer que chaque bit est relieacute agrave un geacuteneacuterateur ideacuteal de tension (qui deacutelivre 0v ou 5v) Par conseacutequent la reacutesistance eacutequivalente quelque soit lrsquoeacutetat des bits et quelques soit le nombre de bits vue entre la sortie et la masse sera eacutegal agrave R

La tension Vs en fonction de lrsquoeacutetat des bits sera

Ce type de CAN eacutetant tregraves classique nous nrsquoindiquerons pas les deacutemonstrations toutefois vous pourrez les trouver tregraves facilement sur Internet ou sur le Cd-rom drsquoannexes joint au dossier

Le montage de Thevenin eacutequivalent est donc

Nous avons jugeacute qursquoune discreacutetisation sur 8 bits eacutetait un peu superflu crsquoest pourquoi nous nous contenterons de 4 bits (ce qui repreacutesentent quand mecircme 16 niveaux de vitesse)

bull Lrsquoadaptation du niveau de tension

Nous avons agrave la sortie du CAN une tension qui srsquoeacutetend de 0 agrave 5v or la commande des cartes Escap ce fait entre -5v et +5v

On peut voir cette adaptation comme lrsquoajout drsquoun offset de -25v et une amplification de gain 2

Voici le montage reacutealisant cette conversion

M1 est un montage suiveur qui lsquorecopiersquo la tension aux bornes de P1 mais sous une impeacutedance constante et eacutegale agrave 4R En 1996 lrsquoeacutequipe avait brancheacute P1 directement sur M3 mais cela a pour inconveacutenient de faire varier agrave la fois lrsquooffset et la penteLe potentiomegravetre P1 permet drsquoajuster lrsquooffset (permet par conseacutequent de reacutegler lrsquoarrecirct complet de moteur) (La valeur theacuteorique de lrsquooffset est 5V (cf formule en M3))

M2 est aussi un montage suiveur Le potentiomegravetre P2 permet drsquoajuster la pente (qui doit avoir un coefficient directeur de 2) Comme M2 est connecteacute au CAN dont la reacutesistance interne est de R P2 doit ecirctre a peut precirct eacutegal agrave R de la sorte la branche aura une reacutesistance eacutequivalente de 2R

M3 Sommateur (Vs = - 2 (Ve + Voffset))

Qursquoelle valeur choisir pour R

Theacuteoriquement on peut choisir nrsquoimporte quelle valeur pour R mais en pratique si R est trop petite une intensiteacute importante serait consommeacutee sans raison et si R est trop grande la forte impeacutedance du montage le rendra tregraves sensible aux parasites (secteur moteurshellip)Ce montage a eacuteteacute testeacute et fonctionne correctement pour R=5k les amplificateurs opeacuterationnels utiliseacutes sont des LM324 mais drsquoautres seraient tout agrave fait envisageables (peu de contraintes de vitesse et de tensions de deacutechets)

4 Conclusion

Nous avons preacutefeacutereacute ne pas utiliser les cartes Escap car les moteurs ne renvoient pas une position sous forme drsquoimpulsion mais une vitesse Etant donneacute que nous avions envisageacute un repeacuterage par odomeacutetrie cela compliquait consideacuterablement la tache

Toutefois il faut savoir que cette solution a eacuteteacute testeacutee et fonctionne tregraves bien (bonne preacutecision bonne dynamique) ainsi dans le cas ougrave le repeacuterage ne se fait pas par odomeacutetrie mais des balises exteacuterieures sachez que cette solution est tregraves pratique agrave utiliser En effet pour imposer une vitesse il suffit au microcontrocircleur drsquoappliquer sur un port un mot binaire correspondant agrave la vitesse voulue hellip et crsquoest tout La carte Escap se charge du reste

5 Carte drsquoasservissement numeacuterique laquo artisanale raquo

La carte reacutealiseacutee baseacutee sur un microcontrocircleur PIC 16F877A srsquoest aveacutereacutee fonctionnelle mais les tests drsquoalgorithmes drsquoasservissement nrsquoont pas eacuteteacute effectueacutesEn effet lrsquoutilisation de cette solution neacutecessite un microcontrocircleur deacutedieacute agrave lrsquoasservissement capable de communiquer via un protocole agrave deacutefinir avec la laquo carte megravere raquo (centralisant les retours des autres capteurs du robot et agissant sur les diffeacuterents actionneurs en fonction de la strateacutegie)Or afin de limiter le nombre de microcontrocircleurs sur le robot et du fait que lrsquoon dispose drsquoun budget suffisant nous avons deacutecideacute drsquoessayer drsquoutiliser des composants speacuteciaux reacutealisant lrsquoasservissement

Le systegraveme se deacutecompose en

- Un microcontrocircleur pour appliquer la PWM asservir et commander- Une carte de puissance pour chaque moteur baseacutee sur un LMD18200- Une carte compteur drsquoimpulsions pour les codeurs

Afin de favoriser lrsquointeractiviteacute et les reacuteglages jrsquoai ajouteacute une carte afficheur LCD avec 6 boutons sur la carte microcontrocircleur

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 27: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

Nous nous sommes inteacuteresseacutes au courant maximum et au temps de charge rapide pour notre choix de batteriesLe type de batterie qui semble le plus approprieacute pour nous est le type Nickel-Cadnium parfaitement adapteacute au pic drsquoappel de courant que provoquent des moteurs pouvant supporter des charges rapides en 1h30min seulement afin de devoir preacutevoir trop de jeux de batteries diffeacuterents

Les batteries LI-Ion ou LI-Polymer preacutesentent une densiteacute eacutenergeacutetique tregraves inteacuteressante mais leur prix est beaucoup plus eacuteleveacute agrave lrsquoachat et de plus dans notre application roulant sur un sol peu accidenteacute la masse pouvant ecirctre transporteacutee est suffisante pour le type NiCd

Les batteries LI-Ion ou LI-Polymer sont plus adapteacutees agrave lrsquoaeacuteromodeacutelisme ou au petit appareil eacutelectroniqueQuant aux batteries au plomb qui sont vraiment bon marcheacute le courant maximum supporteacute est trop faible est supposerait drsquoavoir une forte capaciteacute

Nous voulons avoir une autonomie de 30 minutes il nous faut donc une eacutenergie de 735 WhOr sous 24 V les batteries doivent avoir une capaciteacute de ~3 AhComme les batteries NiCd peuvent deacutebiter un courant maximum de 1C (une fois leur capaciteacute) nous devons donc prendre des batteries de 6Ah sous 24 V ce qui nous donnera une autonomie de 1 heure

Il faudra donc soit acheter un bloc accumulateur NiCd de 24 V 6 Ah srsquoil existe dans le commerce soit le reacutealiser nous mecircme en assemblant diffeacuterents eacuteleacutements

Rappelons que lrsquoassociation en seacuterie permet drsquoadditionner les tensions des eacuteleacutements associeacutes et que lrsquoassociation en parallegravele permet drsquoadditionner les courants deacutebiteacutes

Par exemple des eacuteleacutements de 12 V chacun pour 3 Ah srsquoassocieraient ainsi

Soit deux seacuteries de 20 eacuteleacutements eacutequivalentes agrave 24 V et faisant une capaciteacute de 3 Ah chacune

Il est possible de reacutepartir les accumulateurs en diffeacuterents paquets pour faciliter le rangement dans le robot ou reacutepartir la masse ou eacuteventuellement trouver des packs dans le commerce

Dans le cas de lrsquoUV PR le choix des batteries reste pour le moment sur les NiCd mais pour les essais pratiques on utilisera des batteries au plomb que lrsquoon possegravede deacutejagrave drsquoautant plus que les essais sont reacutealiseacutes avec les moteurs de propulsion et lrsquoasservissement seul ce qui

neacutecessite un deacutebit de courant de 24105 = 4375 A sur 2 batteries soit asymp2187 A

Comme les batteries au plomb peuvent deacutebiter 02C il nous en faudrait des de asymp 109 Ah

Or les essais de la base roulante ne seront que de courtes dureacutees et lrsquoon se contentera donc drsquoutiliser des batteries de 6 Ah pour des raisons de volume mecircme si elles ne sont pas vraiment bien dimensionneacutees

21 La commande des moteurs

Dans un premier temps nous verrons un bref reacutecapitulatif des cartes et modules drsquoasservissement du commerce

Pour la commande les moteurs plusieurs solutions ont eacuteteacute envisageacutees - Un asservissement lsquotout faitrsquo analogique modules laquo Escap raquo- Une solution lsquoartisanalersquo carte avec asservissement numeacuterique- Un asservissement lsquotout faitrsquo numeacuterique circuits laquo LM629 raquo

a Comparatifs des modules drsquoasservissement et calcul des correcteurs

Veille technologique sur les systegravemes drsquoasservissement utiliseacutes par les diffeacuterentes eacutecoles de la coupe E= M6

Le but de cette partie est drsquoeacutetudier les principales techniques drsquoasservissement utiliseacutees par les eacutecoles de la Coupe E=M6 Ce document est loin drsquoecirctre exhaustif et servira de base agrave compleacuteter et actualiser pour les semestres et eacutequipes prochaines

Apregraves une eacutetude sur plus drsquoune trentaine drsquoeacutecoles il ressort trois formes drsquoasservissement la plus utiliseacutee agrave 85 est du type PID en majoriteacute reacuteduit au PI ensuite viennent les microcontrocircleurs PIC associeacutes au PID et les modules AVR nous allons par la suite deacutetailler ces trois solutions Il existe eacutegalement des systegravemes de controcircle dits agrave retour drsquoeacutetat jamais utiliseacutes jusqursquoagrave preacutesent pour la Coupe crsquoest pourquoi nous ne deacutevelopperons pas son approche

3 Systegraveme PID

httpwwwancrorgfichtechactionpidindexhtm

a Principe

Pour pouvoir tester un asservissement il faut dabord reacutealiser une plate-forme de deacuteveloppement le plus geacuteneacuteralement du type suivant Mais pour commencer un brin de theacuteorie illustreacute par des exemples Le scheacutema de principe est repreacutesenteacute ci-dessous

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

Nous avons bien un scheacutema en boucle fermeacutee puisque la sortie du systegraveme est reacuteinjecteacutee dans lentreacutee Les trois blocs bleus correspondent chacun agrave une fonctionnaliteacute Ki est le coefficient inteacutegral Kp le coefficient proportionnel et Kd le coefficient deacuteriveacute Chacun de ces coefficients a une fonctionnaliteacute bien preacutecise Commenccedilons par le plus simple le proportionnel

b Asservissement P

Lasservissement proportionnel est essentiel au fonctionnement du PID Il permet essentiellement de donner de la puissance au moteur Voici quelques reacutesultats dexpeacuterimentations avec Ki=0 et Kd=0

La courbe noire repreacutesente la consigne que lon deacutesire atteindre (Ud) cest un eacutechelon de valeur 32 La courbe bleue repreacutesente la vitesse reacuteelle du systegraveme (Y) Comme vous pouvez le constater plus Kp est grand plus le systegraveme converge vite vers sa valeur finale Mais en contrepartie pour des valeurs de Kp trop grandes le systegraveme oscille Mais lagrave nest pas notre plus gros problegraveme en effet sur ces courbes on voit nettement que la vitesse du moteur natteint jamais la vitesse deacutesireacutee Cest ce que lon appelle lerreur statique elle correspond agrave la diffeacuterence entre la vitesse reacuteelle et la vitesse deacutesireacutee en reacutegime eacutetablie (une fois que le systegraveme sest stabiliseacute) Pour compenser cette erreur statique on rajoute le terme inteacutegral

c Asservissement PI

Le correcteur inteacutegral sert principalement agrave supprimer lerreur statique Lideacutee principale est de charger ou inteacutegrer lerreur depuis le deacutebut et dajouter cette erreur agrave la consigne jusquagrave ce quelle devienne nulle Lorsque cette erreur est nulle le terme inteacutegral se stabilise et il compense parfaitement lerreur entre la consigne et la vitesse reacuteelle Deacutemonstration en image

On voit cette fois-ci que le terme inteacutegral a bien fonctionneacute et que lerreur statique est nulle On constate aussi que plus le gain Ki est grand plus le systegraveme converge vite En revanche plus Ki est grand plus le systegraveme oscille et plus le deacutepassement est grand Sur des asservissements en position le terme deacuteriveacute permet de diminuer le deacutepassement et les oscillations Nous allons voir que dans notre cas nous avons quelques problegravemes

d Asservissement PID ou agrave avance de phase

On a donc rajouteacute le terme deacuteriveacute comme tout bon livre dautomatique le preacuteconise et voici les reacutesultats

Cette fois ci jai choisi de repreacutesenter la tension appliqueacutee au moteur (U) le problegraveme est bien plus flagrant ici Vous voyez que lorsque lon ajoute le terme deacuteriveacute la commande est extrecircmement bruiteacutee En reacutealiteacute on somme agrave la commande la deacuteriveacutee de la vitesse reacuteelle que lon multiplie par un gain Kd La deacuteriveacutee dune vitesse est une acceacuteleacuteration cela signifie que lon amplifie tous les bruits dacceacuteleacuteration et en plus on les multiplient par un gain Kd Donc rajoute du bruit amplifieacute dans la commande Alors pourquoi mettent t-ils ce terme deacuteriveacutee dans les livres Simplement parce que ce bruit est typique des asservissement en vitesse Sur des asservissements en position ce problegraveme est moins freacutequent car la deacuteriveacutee de la position est la vitesse

Ici le problegraveme eacutetait visible parce que nous avons reacutealiseacute toutes ces courbes sur un systegraveme reacuteel Si nous avions simuleacute ces reacutesultats lacceacuteleacuteration naurait pas eacuteteacute bruiteacutee et les courbes auraient eacuteteacute parfaites Pour impleacutementer ce PID sur notre robot il a fallu programmer en numeacuterique une deacuteriveacutee et une inteacutegrale

e PID numeacuterique et reacuteglage

Notre premier problegraveme est de programmer le terme inteacutegral Il existe une meacutethode qui consiste agrave estimer la surface entre deux eacutechantillons mais dans notre cas nous avons des problegravemes dus aux bruits et agrave la freacutequence deacutechantillonnage Alors il faut sommer toutes les erreurs depuis de deacutebut

Notre second problegraveme est de programmer le terme deacuteriveacute La meacutethode ici est de calculer la pente entre deux eacutechantillons de e Theacuteoriquement cela revient agrave faire le calcul suivant

Avec la peacuteriode deacutechantillonnage Pour faire un asservissement numeacuterique il faut impeacuterativement avoir une peacuteriode fixe Pour gagner du temps de calcul geacuteneacuteralement on inteacutegre directement dans le gain Kd

Voici un lalgorithme exemple

Ti = 0 Initialise le terme inteacutegral

for ( i=1 i lt= Nb_cycles i++ )

Init_timers (1) Initialise le timer agrave notre peacuteriode 1 ms

Y = Codeur () Stoque la valeur du codeur dans Y Rst_codeur () Remet le codeur agrave zeacutero Ud = Consigne () Mise agrave jour de la consigne e_old=e Stoque e(t-1) e = Ud - Y Calcul de lerreur Ti = Ti + e Calcul de linteacutegral Calcul du PID U = Kp e Terme proportionnel

+ Ki Ti Terme inteacutegral + Kd ( e - e_old ) Terme deacuteriveacute Moteur (U) On applique la consigne

while ( end_timer() ) On attend la fin de la peacuteriode

Pour le reacuteglage des gains Kp Ki et Kd il existe diffeacuterentes meacutethodes Ici nous lavons fait de maniegravere empirique et le reacutesultats est plutocirct bon Linconveacutenient de ces meacutethodes est quelles demandent un modegravele du systegraveme ce qui est geacuteneacuteralement dur agrave produire Il existe

aussi des composants programmables qui permettent de faire directement lasservissement numeacuterique (HCTL 1100 LM629) Ils sont exactement baseacutes sur la meacutethode preacutesenteacutee ici

Pour ce qui est du reacuteglage des correcteurs lrsquooptimal est drsquoutiliser la meacutethode de lrsquooptimum dissymeacutetrique une fois que lrsquoon agrave reacutealiseacute le modegravele du systegraveme La plus part des eacutecoles ne reacutealisent pas ce modegravele et ce limite donc agrave une correction empirique en reacutealisant des tests ou en utilisant la meacutethode Ziegler-Nichols agrave partir de la reacuteponse agrave un eacutechelon de tension

Par la suite nous rappellerons les meacutethodes de Ziegler-Nichols et de lrsquooptimum dissymeacutetrique

f Les meacutethodes de Ziegler-Nichols

Ces meacutethodes fournissent des reacuteglages pour des correcteurs de type PID (pouvant ne comporter quune action Proportionnelle une action Proportionnelle et une action Inteacutegrale ou les 3 actions simultaneacutement) dont la structure est la suivante

bull MEacuteTHODE DE ZIEGLER NICHOLS TEMPORELLE

Elle est adapteacutee aux systegravemes stables en boucle ouverte qui ont une reacuteponse apeacuteriodique La reacuteponse agrave un eacutechelon unitaire du systegraveme physique doit ecirctre enregistreacutee Diffeacuterentes caracteacuteristiques de la reacuteponse obtenue sont mesureacutees

Le modegravele approcheacute utiliseacutee par Ziegler Nichols comporte une constante de temps et un retard pur ou bien un retard pur et un inteacutegrateur

Si le systegraveme physique comporte un inteacutegrateur les mesures de a et de L demeurent disponibles sur le deacutebut de la reacuteponse

Les reacuteglages suggeacutereacutes par la meacutethode temporelle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 1a - -correcteur PI 09a 3L -

correcteur PID 12a 2L L2Concernant le raffinement des reacuteglages augmenter Kp ou diminuer Ti augment les

oscillations de la sortie

bull MEacuteTHODE DE ZIEGLER NICHOLS FREacuteQUENTIELLE

Cette meacutethode convient particuliegraverement bien aux systegravemes instables en boucle ouverte pour lesquels la meacutethode temporelle nest pas envisageable Lexpeacuterimentation se fait sur le systegraveme boucleacute avec un simple gain proportionnel qui doit ecirctre stable Le principe est de modifier la valeur du gain par essai-erreur jusquagrave atteindre la limite de stabiliteacute (pheacutenomegravene de pompage) Il reste agrave relever le gain limite K0 obtenu et agrave mesurer la peacuteriode T0 des oscillations de la reacuteponse obtenue

Les reacuteglages suggeacutereacutes par la meacutethode freacutequentielle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 05 K0 - -correcteur PI 045 K0 08 T0 -

correcteur PID 06 K0 05 T0 0125 T0

A la page Internet suivante vous trouverez un simulateur de cette meacutethode

httpwww-hadocensieginpgfrhadocateliersreglageEmpCorrReglEmpCorrDroithtml

g Meacutethode de lrsquooptimum dyssimeacutetique (voir poly MC06 Chap 5 et 8)

Cette meacutethode srsquoapplique une fois le modegravele reacutealiseacute et mis sous la forme drsquoun second ordre

et on obtient le correcteur PI

pour une surtension deacutesireacutee QdB

Q = 10^(QdB20)λ= radic(Qsup2(Qsup2-1))Δφ = arcos (1 λ)α= ((1+sin(Δφ))cos(Δφ))sup2ωN= ωQαω0= ωQradicαKP= ω0 λ KQ

4 Les microcontrocircleurs

a Avant propos

Cette fiche se veut ecirctre sous la forme dun projet Un projet non termineacute ougrave chacun peut apporter sa contribution (ameacuteliorations adaptations corrections etc)De ce fait ces pages sont ameneacutees agrave eacutevoluer et vous-mecircme pourrez participer agrave leur eacutevolution

Pourquoi avoir choisit un tel mode de travail Tout simplement parce que le sujet est vaste et que des variations sont possibles suivant lutilisation quen feront les diffeacuterentes personnes

Le but de ce projet est de reacutealiser une double asservissement de vitesse (type PID) de deux moteurs sur un seul PIC (type 16F877) Lutiliteacute majeure eacutetant de faire rouler un robot bien droit et agrave la bonne vitesse A quoi ccedila sert plus preacuteciseacutement

Avec un seul PIC ce projet permet aux roboticiens amateurs et chevronneacutes de reacutealiser facilement leur asservissement de vitesse de moteurs agrave courant continu (en geacuteneacuteral les moteurs de propulsions de leur robot mais ccedila peut ecirctre bien sucircr dautres moteurs) La commande de lasservissement pourra se faire agrave terme en liaison seacuterie (deacutejagrave fait) I2C ou par bus ISA

b Avantages

Il existe bien sucircr dautres systegravemes qui gegraverent un asservissement de vitesses Des systegravemes professionnels existent comme les LM629 Ils ont linconveacutenient decirctre cher (et ce pour un seul moteur) et relativement complexes

Pourquoi chercher un fusil pour chasser des moustiques Le double asservissement sur PIC vous coucircte le prix dun PIC soit environ 15Euro pour un 16F877 actuellement et ce pour 2 moteurs Ce double asservissement se veut relativement simple De plus vous pouvez en modifier le programme et ladapter agrave vos besoins

c Inconveacutenients

Les personnes qui auront les moyens preacutefeacutererons opter pour un systegraveme professionnel certainement pour des raisons de fiabiliteacute mais cest agrave leurs risques et peacuterils -)La puissance du PIC eacutetant limiteacutee il ne peut pas reacutealiser des PID trop rapides ou trop complexes Il y a en particulier une limitation sur le nombre dimpulsions par seconde quil est capable de geacuterer

Le langage utiliseacute eacutetant le C il faut une licence du logiciel pour pouvoir modifier et recompiler le code source c Mais le projet se veut geacuteneacuterique Une version donneacutee pourra ecirctre utiliseacute sans recompilation en respectant quelques contraintes

d Asservissement

En fait on pourrait imaginer quil suffirait denvoyer au moteur une puissance constante pour quil tourne tout le temps agrave la mecircme vitesse Ce nest pas vrai du tout Tout dabord 2 moteurs dune mecircme seacuterie nauront pas forceacutement le mecircme comportement Ensuite parce que les niveaux de tension ou dautre diffeacuterences eacutelectriques peuvent jouer Enfin parce que des influences exteacuterieures (obstacles frein meacutecanique du robot) peuvent jouer

Du coup il est tregraves difficile de faire aller un moteur agrave la vitesse voulue Parfois ce nest pas gecircnant mais ccedila peut lecirctre Un exemple classique est le robot avec 2 roues motrices type char une configuration qui est tregraves courante Mais pour que ce robot aille droit il faut que les 2 moteurs aillent exactement agrave la mecircme vitesse

La solution est de faire un asservissement Cest a dire moduler dynamiquement la puissance envoyeacute aux moteurs suivant leur vitesse mesureacutee afin dadapter celle-ci agrave ce qui est deacutesireacuteeCela implique un eacuteleacutement tregraves important pour asservir il faut un capteur de vitesse du moteur En geacuteneacuteral il sagit dun compte-tour qui enverra N impulsions (ou pas) par tour de moteur Ensuite un programme va calculer en fonction de la vitesse mesureacutee du moteur la puissance agrave utiliser

Les asservissements sont constamment en train de chercher leacutequilibre Il faut bien comprendre quils mettent un certain temps agrave latteindre et ce dernier peut aussi ecirctre instable si lasservissement est mal reacutegleacute

Lasservissement quon va utiliser ici est un classique PIDou plus preacuteciseacutement un PI car pour des raisons de vitesses de traitement la composante deacuteriveacutee est laisseacutee de coteacute (mais rien de difficile agrave rajouter)

Le PID ou Proportionnel Inteacutegrale Deacuteriveacute est une meacutethode de calcul dasservissement

Soit Kp Ki et Kd les coefficients proportionnels inteacutegrale et deacuteriveacuteSoit e lerreur Vitesse mesureacutee moins vitesse demandeacuteeSoit Ti le terme inteacutegral dabord initialiseacute agrave 0

Consigne a appliquer (PWM) = Kp e + (1Ki) (Ti += e) + Kd (e - e(t-1))

On pourrait dire des pages et des pages sur le PID et ce nest pas mon but ici Merci de vous reporter au lien ci-dessous

Pour plus de deacutetails sur le PID la page de lANCR httpwwwancrorgfichtechactionpidindexhtmChez les Fribottes la Simulation de Jean-Claude httpwwwwikifreefrWiKiFriindexphpSimulateur20de20PID

e Le pic

Le PIC est un petit microcontrocircleur assez bon marche et simple a programmer comme a utiliser

La aussi je vais pas rentrer dans les deacutetails vous pouvez vous reporter agrave la bdtech du site Fribotte et en particulier aux cours de Bigonoff

Le PIC est ici programmeacute en C voir la page Fribotte ici Lutilisation du langage C permet dalleacuteger consideacuterablement le deacuteveloppement dune application compliqueacutee

2 Module AVR

httpwwwenseirbfr~matzfravrphp

Tregraves peu de renseignement sur ce module sinon ces informations drsquoun eacutetudiant de lrsquoEnseirb

Depuis plusieurs anneacutees je participe agrave la coupe de robotique E=M6 dont lobjectif pour chaque eacutequipe est de fabriquer un robot autonome devant se conformer agrave un regraveglement Pour plus dinfos vous pouvez vous rendre sur le site de mon eacutequipe Microb Technology ou bien sur le site de Planegravete Sciences lorganisme beacuteneacutevole qui organise cette compeacutetition

Jai deacutecouvert en 2001 les microcontrocircleurs Atmel AVR auxquels je me suis beaucoup attacheacute dune part parce quils sont assez performants pour des microcontrocircleurs 8 bits mais aussi et surtout car le fameux compilateur libre GCC est capable de compiler du code C pour ces petites becirctes Il existe de surcroicirct plusieurs outils libres permettant de les programmer de les simuler etc

Le but de ce projet est donc de deacutevelopper des modules servant dinterface geacuteneacuterique avec le hardware du microcontrocircleur quel que soit la version (par exemple les UART inclus dans les AVR AtMega sont diffeacuterents de ceux preacutesents dans les petits AVR) et de deacutevelopper des modules utiles pour certaines utilisations usuelles et pas seulement pour la coupe E=M6 (codage de hamming asservissement chiffrement etc)

Vous pouvez contacter leacutequipe de deacuteveloppement agrave avr-devdroids-corporg Pour le moment aucune release na eacuteteacute faite mais le travail est deacutejagrave bien avanceacute Chaque soir un screenshot du CVS est reacutealiseacute Il peut ne pas compiler mais normalement ccedila devrait fonctionner Voici le lien

3 Modules drsquoasservissement analogique laquo Escap raquo

Nous avons essayeacute de reacutecupeacuterer les cartes de commande Escap pour moteurs Escap qui avaient eacuteteacute utiliseacutees en 96 et 98 avec succegraves

Nous les avons monteacutes sur une base roulante qui pesait en tout 74 kgVoici grosso-modo leurs avantages et leurs inconveacutenients (pour les notices techniques voir le rapport 96 ou 98)

a Avantages

Cette carte inclut directement un asservissement avec correcteur PI la commande de puissance les ponts en H

Elle est tregraves facile agrave utiliser Elle est speacutecialement conccedilue pour les moteurs Escap que nous avons donc

parfaitement adapteacutee

b Inconveacutenients

Les moteurs ne fonctionnent correctement que sous 24v Les cartes et les moteurs semblent assez gourment Les cartes nantis de gros radiateurs sont relativement encombrantes Les tachymegravetres monteacutes sur les moteurs ne donnent pas une indication de position

mais de vitesse (qui plus est en analogique)

Nous avons preacutefeacutereacute refaire la partie commande car celle de 1996 souffrait de quelques deacutefauts (cf rapport 1996)

La conversion numeacuterique analogique

Pour reacutealiser la conversion numeacuterique analogique nous avons choisit un pont agrave reacutesistance R-2R

Nous pouvons consideacuterer que chaque bit est relieacute agrave un geacuteneacuterateur ideacuteal de tension (qui deacutelivre 0v ou 5v) Par conseacutequent la reacutesistance eacutequivalente quelque soit lrsquoeacutetat des bits et quelques soit le nombre de bits vue entre la sortie et la masse sera eacutegal agrave R

La tension Vs en fonction de lrsquoeacutetat des bits sera

Ce type de CAN eacutetant tregraves classique nous nrsquoindiquerons pas les deacutemonstrations toutefois vous pourrez les trouver tregraves facilement sur Internet ou sur le Cd-rom drsquoannexes joint au dossier

Le montage de Thevenin eacutequivalent est donc

Nous avons jugeacute qursquoune discreacutetisation sur 8 bits eacutetait un peu superflu crsquoest pourquoi nous nous contenterons de 4 bits (ce qui repreacutesentent quand mecircme 16 niveaux de vitesse)

bull Lrsquoadaptation du niveau de tension

Nous avons agrave la sortie du CAN une tension qui srsquoeacutetend de 0 agrave 5v or la commande des cartes Escap ce fait entre -5v et +5v

On peut voir cette adaptation comme lrsquoajout drsquoun offset de -25v et une amplification de gain 2

Voici le montage reacutealisant cette conversion

M1 est un montage suiveur qui lsquorecopiersquo la tension aux bornes de P1 mais sous une impeacutedance constante et eacutegale agrave 4R En 1996 lrsquoeacutequipe avait brancheacute P1 directement sur M3 mais cela a pour inconveacutenient de faire varier agrave la fois lrsquooffset et la penteLe potentiomegravetre P1 permet drsquoajuster lrsquooffset (permet par conseacutequent de reacutegler lrsquoarrecirct complet de moteur) (La valeur theacuteorique de lrsquooffset est 5V (cf formule en M3))

M2 est aussi un montage suiveur Le potentiomegravetre P2 permet drsquoajuster la pente (qui doit avoir un coefficient directeur de 2) Comme M2 est connecteacute au CAN dont la reacutesistance interne est de R P2 doit ecirctre a peut precirct eacutegal agrave R de la sorte la branche aura une reacutesistance eacutequivalente de 2R

M3 Sommateur (Vs = - 2 (Ve + Voffset))

Qursquoelle valeur choisir pour R

Theacuteoriquement on peut choisir nrsquoimporte quelle valeur pour R mais en pratique si R est trop petite une intensiteacute importante serait consommeacutee sans raison et si R est trop grande la forte impeacutedance du montage le rendra tregraves sensible aux parasites (secteur moteurshellip)Ce montage a eacuteteacute testeacute et fonctionne correctement pour R=5k les amplificateurs opeacuterationnels utiliseacutes sont des LM324 mais drsquoautres seraient tout agrave fait envisageables (peu de contraintes de vitesse et de tensions de deacutechets)

4 Conclusion

Nous avons preacutefeacutereacute ne pas utiliser les cartes Escap car les moteurs ne renvoient pas une position sous forme drsquoimpulsion mais une vitesse Etant donneacute que nous avions envisageacute un repeacuterage par odomeacutetrie cela compliquait consideacuterablement la tache

Toutefois il faut savoir que cette solution a eacuteteacute testeacutee et fonctionne tregraves bien (bonne preacutecision bonne dynamique) ainsi dans le cas ougrave le repeacuterage ne se fait pas par odomeacutetrie mais des balises exteacuterieures sachez que cette solution est tregraves pratique agrave utiliser En effet pour imposer une vitesse il suffit au microcontrocircleur drsquoappliquer sur un port un mot binaire correspondant agrave la vitesse voulue hellip et crsquoest tout La carte Escap se charge du reste

5 Carte drsquoasservissement numeacuterique laquo artisanale raquo

La carte reacutealiseacutee baseacutee sur un microcontrocircleur PIC 16F877A srsquoest aveacutereacutee fonctionnelle mais les tests drsquoalgorithmes drsquoasservissement nrsquoont pas eacuteteacute effectueacutesEn effet lrsquoutilisation de cette solution neacutecessite un microcontrocircleur deacutedieacute agrave lrsquoasservissement capable de communiquer via un protocole agrave deacutefinir avec la laquo carte megravere raquo (centralisant les retours des autres capteurs du robot et agissant sur les diffeacuterents actionneurs en fonction de la strateacutegie)Or afin de limiter le nombre de microcontrocircleurs sur le robot et du fait que lrsquoon dispose drsquoun budget suffisant nous avons deacutecideacute drsquoessayer drsquoutiliser des composants speacuteciaux reacutealisant lrsquoasservissement

Le systegraveme se deacutecompose en

- Un microcontrocircleur pour appliquer la PWM asservir et commander- Une carte de puissance pour chaque moteur baseacutee sur un LMD18200- Une carte compteur drsquoimpulsions pour les codeurs

Afin de favoriser lrsquointeractiviteacute et les reacuteglages jrsquoai ajouteacute une carte afficheur LCD avec 6 boutons sur la carte microcontrocircleur

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 28: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

21 La commande des moteurs

Dans un premier temps nous verrons un bref reacutecapitulatif des cartes et modules drsquoasservissement du commerce

Pour la commande les moteurs plusieurs solutions ont eacuteteacute envisageacutees - Un asservissement lsquotout faitrsquo analogique modules laquo Escap raquo- Une solution lsquoartisanalersquo carte avec asservissement numeacuterique- Un asservissement lsquotout faitrsquo numeacuterique circuits laquo LM629 raquo

a Comparatifs des modules drsquoasservissement et calcul des correcteurs

Veille technologique sur les systegravemes drsquoasservissement utiliseacutes par les diffeacuterentes eacutecoles de la coupe E= M6

Le but de cette partie est drsquoeacutetudier les principales techniques drsquoasservissement utiliseacutees par les eacutecoles de la Coupe E=M6 Ce document est loin drsquoecirctre exhaustif et servira de base agrave compleacuteter et actualiser pour les semestres et eacutequipes prochaines

Apregraves une eacutetude sur plus drsquoune trentaine drsquoeacutecoles il ressort trois formes drsquoasservissement la plus utiliseacutee agrave 85 est du type PID en majoriteacute reacuteduit au PI ensuite viennent les microcontrocircleurs PIC associeacutes au PID et les modules AVR nous allons par la suite deacutetailler ces trois solutions Il existe eacutegalement des systegravemes de controcircle dits agrave retour drsquoeacutetat jamais utiliseacutes jusqursquoagrave preacutesent pour la Coupe crsquoest pourquoi nous ne deacutevelopperons pas son approche

3 Systegraveme PID

httpwwwancrorgfichtechactionpidindexhtm

a Principe

Pour pouvoir tester un asservissement il faut dabord reacutealiser une plate-forme de deacuteveloppement le plus geacuteneacuteralement du type suivant Mais pour commencer un brin de theacuteorie illustreacute par des exemples Le scheacutema de principe est repreacutesenteacute ci-dessous

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

Nous avons bien un scheacutema en boucle fermeacutee puisque la sortie du systegraveme est reacuteinjecteacutee dans lentreacutee Les trois blocs bleus correspondent chacun agrave une fonctionnaliteacute Ki est le coefficient inteacutegral Kp le coefficient proportionnel et Kd le coefficient deacuteriveacute Chacun de ces coefficients a une fonctionnaliteacute bien preacutecise Commenccedilons par le plus simple le proportionnel

b Asservissement P

Lasservissement proportionnel est essentiel au fonctionnement du PID Il permet essentiellement de donner de la puissance au moteur Voici quelques reacutesultats dexpeacuterimentations avec Ki=0 et Kd=0

La courbe noire repreacutesente la consigne que lon deacutesire atteindre (Ud) cest un eacutechelon de valeur 32 La courbe bleue repreacutesente la vitesse reacuteelle du systegraveme (Y) Comme vous pouvez le constater plus Kp est grand plus le systegraveme converge vite vers sa valeur finale Mais en contrepartie pour des valeurs de Kp trop grandes le systegraveme oscille Mais lagrave nest pas notre plus gros problegraveme en effet sur ces courbes on voit nettement que la vitesse du moteur natteint jamais la vitesse deacutesireacutee Cest ce que lon appelle lerreur statique elle correspond agrave la diffeacuterence entre la vitesse reacuteelle et la vitesse deacutesireacutee en reacutegime eacutetablie (une fois que le systegraveme sest stabiliseacute) Pour compenser cette erreur statique on rajoute le terme inteacutegral

c Asservissement PI

Le correcteur inteacutegral sert principalement agrave supprimer lerreur statique Lideacutee principale est de charger ou inteacutegrer lerreur depuis le deacutebut et dajouter cette erreur agrave la consigne jusquagrave ce quelle devienne nulle Lorsque cette erreur est nulle le terme inteacutegral se stabilise et il compense parfaitement lerreur entre la consigne et la vitesse reacuteelle Deacutemonstration en image

On voit cette fois-ci que le terme inteacutegral a bien fonctionneacute et que lerreur statique est nulle On constate aussi que plus le gain Ki est grand plus le systegraveme converge vite En revanche plus Ki est grand plus le systegraveme oscille et plus le deacutepassement est grand Sur des asservissements en position le terme deacuteriveacute permet de diminuer le deacutepassement et les oscillations Nous allons voir que dans notre cas nous avons quelques problegravemes

d Asservissement PID ou agrave avance de phase

On a donc rajouteacute le terme deacuteriveacute comme tout bon livre dautomatique le preacuteconise et voici les reacutesultats

Cette fois ci jai choisi de repreacutesenter la tension appliqueacutee au moteur (U) le problegraveme est bien plus flagrant ici Vous voyez que lorsque lon ajoute le terme deacuteriveacute la commande est extrecircmement bruiteacutee En reacutealiteacute on somme agrave la commande la deacuteriveacutee de la vitesse reacuteelle que lon multiplie par un gain Kd La deacuteriveacutee dune vitesse est une acceacuteleacuteration cela signifie que lon amplifie tous les bruits dacceacuteleacuteration et en plus on les multiplient par un gain Kd Donc rajoute du bruit amplifieacute dans la commande Alors pourquoi mettent t-ils ce terme deacuteriveacutee dans les livres Simplement parce que ce bruit est typique des asservissement en vitesse Sur des asservissements en position ce problegraveme est moins freacutequent car la deacuteriveacutee de la position est la vitesse

Ici le problegraveme eacutetait visible parce que nous avons reacutealiseacute toutes ces courbes sur un systegraveme reacuteel Si nous avions simuleacute ces reacutesultats lacceacuteleacuteration naurait pas eacuteteacute bruiteacutee et les courbes auraient eacuteteacute parfaites Pour impleacutementer ce PID sur notre robot il a fallu programmer en numeacuterique une deacuteriveacutee et une inteacutegrale

e PID numeacuterique et reacuteglage

Notre premier problegraveme est de programmer le terme inteacutegral Il existe une meacutethode qui consiste agrave estimer la surface entre deux eacutechantillons mais dans notre cas nous avons des problegravemes dus aux bruits et agrave la freacutequence deacutechantillonnage Alors il faut sommer toutes les erreurs depuis de deacutebut

Notre second problegraveme est de programmer le terme deacuteriveacute La meacutethode ici est de calculer la pente entre deux eacutechantillons de e Theacuteoriquement cela revient agrave faire le calcul suivant

Avec la peacuteriode deacutechantillonnage Pour faire un asservissement numeacuterique il faut impeacuterativement avoir une peacuteriode fixe Pour gagner du temps de calcul geacuteneacuteralement on inteacutegre directement dans le gain Kd

Voici un lalgorithme exemple

Ti = 0 Initialise le terme inteacutegral

for ( i=1 i lt= Nb_cycles i++ )

Init_timers (1) Initialise le timer agrave notre peacuteriode 1 ms

Y = Codeur () Stoque la valeur du codeur dans Y Rst_codeur () Remet le codeur agrave zeacutero Ud = Consigne () Mise agrave jour de la consigne e_old=e Stoque e(t-1) e = Ud - Y Calcul de lerreur Ti = Ti + e Calcul de linteacutegral Calcul du PID U = Kp e Terme proportionnel

+ Ki Ti Terme inteacutegral + Kd ( e - e_old ) Terme deacuteriveacute Moteur (U) On applique la consigne

while ( end_timer() ) On attend la fin de la peacuteriode

Pour le reacuteglage des gains Kp Ki et Kd il existe diffeacuterentes meacutethodes Ici nous lavons fait de maniegravere empirique et le reacutesultats est plutocirct bon Linconveacutenient de ces meacutethodes est quelles demandent un modegravele du systegraveme ce qui est geacuteneacuteralement dur agrave produire Il existe

aussi des composants programmables qui permettent de faire directement lasservissement numeacuterique (HCTL 1100 LM629) Ils sont exactement baseacutes sur la meacutethode preacutesenteacutee ici

Pour ce qui est du reacuteglage des correcteurs lrsquooptimal est drsquoutiliser la meacutethode de lrsquooptimum dissymeacutetrique une fois que lrsquoon agrave reacutealiseacute le modegravele du systegraveme La plus part des eacutecoles ne reacutealisent pas ce modegravele et ce limite donc agrave une correction empirique en reacutealisant des tests ou en utilisant la meacutethode Ziegler-Nichols agrave partir de la reacuteponse agrave un eacutechelon de tension

Par la suite nous rappellerons les meacutethodes de Ziegler-Nichols et de lrsquooptimum dissymeacutetrique

f Les meacutethodes de Ziegler-Nichols

Ces meacutethodes fournissent des reacuteglages pour des correcteurs de type PID (pouvant ne comporter quune action Proportionnelle une action Proportionnelle et une action Inteacutegrale ou les 3 actions simultaneacutement) dont la structure est la suivante

bull MEacuteTHODE DE ZIEGLER NICHOLS TEMPORELLE

Elle est adapteacutee aux systegravemes stables en boucle ouverte qui ont une reacuteponse apeacuteriodique La reacuteponse agrave un eacutechelon unitaire du systegraveme physique doit ecirctre enregistreacutee Diffeacuterentes caracteacuteristiques de la reacuteponse obtenue sont mesureacutees

Le modegravele approcheacute utiliseacutee par Ziegler Nichols comporte une constante de temps et un retard pur ou bien un retard pur et un inteacutegrateur

Si le systegraveme physique comporte un inteacutegrateur les mesures de a et de L demeurent disponibles sur le deacutebut de la reacuteponse

Les reacuteglages suggeacutereacutes par la meacutethode temporelle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 1a - -correcteur PI 09a 3L -

correcteur PID 12a 2L L2Concernant le raffinement des reacuteglages augmenter Kp ou diminuer Ti augment les

oscillations de la sortie

bull MEacuteTHODE DE ZIEGLER NICHOLS FREacuteQUENTIELLE

Cette meacutethode convient particuliegraverement bien aux systegravemes instables en boucle ouverte pour lesquels la meacutethode temporelle nest pas envisageable Lexpeacuterimentation se fait sur le systegraveme boucleacute avec un simple gain proportionnel qui doit ecirctre stable Le principe est de modifier la valeur du gain par essai-erreur jusquagrave atteindre la limite de stabiliteacute (pheacutenomegravene de pompage) Il reste agrave relever le gain limite K0 obtenu et agrave mesurer la peacuteriode T0 des oscillations de la reacuteponse obtenue

Les reacuteglages suggeacutereacutes par la meacutethode freacutequentielle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 05 K0 - -correcteur PI 045 K0 08 T0 -

correcteur PID 06 K0 05 T0 0125 T0

A la page Internet suivante vous trouverez un simulateur de cette meacutethode

httpwww-hadocensieginpgfrhadocateliersreglageEmpCorrReglEmpCorrDroithtml

g Meacutethode de lrsquooptimum dyssimeacutetique (voir poly MC06 Chap 5 et 8)

Cette meacutethode srsquoapplique une fois le modegravele reacutealiseacute et mis sous la forme drsquoun second ordre

et on obtient le correcteur PI

pour une surtension deacutesireacutee QdB

Q = 10^(QdB20)λ= radic(Qsup2(Qsup2-1))Δφ = arcos (1 λ)α= ((1+sin(Δφ))cos(Δφ))sup2ωN= ωQαω0= ωQradicαKP= ω0 λ KQ

4 Les microcontrocircleurs

a Avant propos

Cette fiche se veut ecirctre sous la forme dun projet Un projet non termineacute ougrave chacun peut apporter sa contribution (ameacuteliorations adaptations corrections etc)De ce fait ces pages sont ameneacutees agrave eacutevoluer et vous-mecircme pourrez participer agrave leur eacutevolution

Pourquoi avoir choisit un tel mode de travail Tout simplement parce que le sujet est vaste et que des variations sont possibles suivant lutilisation quen feront les diffeacuterentes personnes

Le but de ce projet est de reacutealiser une double asservissement de vitesse (type PID) de deux moteurs sur un seul PIC (type 16F877) Lutiliteacute majeure eacutetant de faire rouler un robot bien droit et agrave la bonne vitesse A quoi ccedila sert plus preacuteciseacutement

Avec un seul PIC ce projet permet aux roboticiens amateurs et chevronneacutes de reacutealiser facilement leur asservissement de vitesse de moteurs agrave courant continu (en geacuteneacuteral les moteurs de propulsions de leur robot mais ccedila peut ecirctre bien sucircr dautres moteurs) La commande de lasservissement pourra se faire agrave terme en liaison seacuterie (deacutejagrave fait) I2C ou par bus ISA

b Avantages

Il existe bien sucircr dautres systegravemes qui gegraverent un asservissement de vitesses Des systegravemes professionnels existent comme les LM629 Ils ont linconveacutenient decirctre cher (et ce pour un seul moteur) et relativement complexes

Pourquoi chercher un fusil pour chasser des moustiques Le double asservissement sur PIC vous coucircte le prix dun PIC soit environ 15Euro pour un 16F877 actuellement et ce pour 2 moteurs Ce double asservissement se veut relativement simple De plus vous pouvez en modifier le programme et ladapter agrave vos besoins

c Inconveacutenients

Les personnes qui auront les moyens preacutefeacutererons opter pour un systegraveme professionnel certainement pour des raisons de fiabiliteacute mais cest agrave leurs risques et peacuterils -)La puissance du PIC eacutetant limiteacutee il ne peut pas reacutealiser des PID trop rapides ou trop complexes Il y a en particulier une limitation sur le nombre dimpulsions par seconde quil est capable de geacuterer

Le langage utiliseacute eacutetant le C il faut une licence du logiciel pour pouvoir modifier et recompiler le code source c Mais le projet se veut geacuteneacuterique Une version donneacutee pourra ecirctre utiliseacute sans recompilation en respectant quelques contraintes

d Asservissement

En fait on pourrait imaginer quil suffirait denvoyer au moteur une puissance constante pour quil tourne tout le temps agrave la mecircme vitesse Ce nest pas vrai du tout Tout dabord 2 moteurs dune mecircme seacuterie nauront pas forceacutement le mecircme comportement Ensuite parce que les niveaux de tension ou dautre diffeacuterences eacutelectriques peuvent jouer Enfin parce que des influences exteacuterieures (obstacles frein meacutecanique du robot) peuvent jouer

Du coup il est tregraves difficile de faire aller un moteur agrave la vitesse voulue Parfois ce nest pas gecircnant mais ccedila peut lecirctre Un exemple classique est le robot avec 2 roues motrices type char une configuration qui est tregraves courante Mais pour que ce robot aille droit il faut que les 2 moteurs aillent exactement agrave la mecircme vitesse

La solution est de faire un asservissement Cest a dire moduler dynamiquement la puissance envoyeacute aux moteurs suivant leur vitesse mesureacutee afin dadapter celle-ci agrave ce qui est deacutesireacuteeCela implique un eacuteleacutement tregraves important pour asservir il faut un capteur de vitesse du moteur En geacuteneacuteral il sagit dun compte-tour qui enverra N impulsions (ou pas) par tour de moteur Ensuite un programme va calculer en fonction de la vitesse mesureacutee du moteur la puissance agrave utiliser

Les asservissements sont constamment en train de chercher leacutequilibre Il faut bien comprendre quils mettent un certain temps agrave latteindre et ce dernier peut aussi ecirctre instable si lasservissement est mal reacutegleacute

Lasservissement quon va utiliser ici est un classique PIDou plus preacuteciseacutement un PI car pour des raisons de vitesses de traitement la composante deacuteriveacutee est laisseacutee de coteacute (mais rien de difficile agrave rajouter)

Le PID ou Proportionnel Inteacutegrale Deacuteriveacute est une meacutethode de calcul dasservissement

Soit Kp Ki et Kd les coefficients proportionnels inteacutegrale et deacuteriveacuteSoit e lerreur Vitesse mesureacutee moins vitesse demandeacuteeSoit Ti le terme inteacutegral dabord initialiseacute agrave 0

Consigne a appliquer (PWM) = Kp e + (1Ki) (Ti += e) + Kd (e - e(t-1))

On pourrait dire des pages et des pages sur le PID et ce nest pas mon but ici Merci de vous reporter au lien ci-dessous

Pour plus de deacutetails sur le PID la page de lANCR httpwwwancrorgfichtechactionpidindexhtmChez les Fribottes la Simulation de Jean-Claude httpwwwwikifreefrWiKiFriindexphpSimulateur20de20PID

e Le pic

Le PIC est un petit microcontrocircleur assez bon marche et simple a programmer comme a utiliser

La aussi je vais pas rentrer dans les deacutetails vous pouvez vous reporter agrave la bdtech du site Fribotte et en particulier aux cours de Bigonoff

Le PIC est ici programmeacute en C voir la page Fribotte ici Lutilisation du langage C permet dalleacuteger consideacuterablement le deacuteveloppement dune application compliqueacutee

2 Module AVR

httpwwwenseirbfr~matzfravrphp

Tregraves peu de renseignement sur ce module sinon ces informations drsquoun eacutetudiant de lrsquoEnseirb

Depuis plusieurs anneacutees je participe agrave la coupe de robotique E=M6 dont lobjectif pour chaque eacutequipe est de fabriquer un robot autonome devant se conformer agrave un regraveglement Pour plus dinfos vous pouvez vous rendre sur le site de mon eacutequipe Microb Technology ou bien sur le site de Planegravete Sciences lorganisme beacuteneacutevole qui organise cette compeacutetition

Jai deacutecouvert en 2001 les microcontrocircleurs Atmel AVR auxquels je me suis beaucoup attacheacute dune part parce quils sont assez performants pour des microcontrocircleurs 8 bits mais aussi et surtout car le fameux compilateur libre GCC est capable de compiler du code C pour ces petites becirctes Il existe de surcroicirct plusieurs outils libres permettant de les programmer de les simuler etc

Le but de ce projet est donc de deacutevelopper des modules servant dinterface geacuteneacuterique avec le hardware du microcontrocircleur quel que soit la version (par exemple les UART inclus dans les AVR AtMega sont diffeacuterents de ceux preacutesents dans les petits AVR) et de deacutevelopper des modules utiles pour certaines utilisations usuelles et pas seulement pour la coupe E=M6 (codage de hamming asservissement chiffrement etc)

Vous pouvez contacter leacutequipe de deacuteveloppement agrave avr-devdroids-corporg Pour le moment aucune release na eacuteteacute faite mais le travail est deacutejagrave bien avanceacute Chaque soir un screenshot du CVS est reacutealiseacute Il peut ne pas compiler mais normalement ccedila devrait fonctionner Voici le lien

3 Modules drsquoasservissement analogique laquo Escap raquo

Nous avons essayeacute de reacutecupeacuterer les cartes de commande Escap pour moteurs Escap qui avaient eacuteteacute utiliseacutees en 96 et 98 avec succegraves

Nous les avons monteacutes sur une base roulante qui pesait en tout 74 kgVoici grosso-modo leurs avantages et leurs inconveacutenients (pour les notices techniques voir le rapport 96 ou 98)

a Avantages

Cette carte inclut directement un asservissement avec correcteur PI la commande de puissance les ponts en H

Elle est tregraves facile agrave utiliser Elle est speacutecialement conccedilue pour les moteurs Escap que nous avons donc

parfaitement adapteacutee

b Inconveacutenients

Les moteurs ne fonctionnent correctement que sous 24v Les cartes et les moteurs semblent assez gourment Les cartes nantis de gros radiateurs sont relativement encombrantes Les tachymegravetres monteacutes sur les moteurs ne donnent pas une indication de position

mais de vitesse (qui plus est en analogique)

Nous avons preacutefeacutereacute refaire la partie commande car celle de 1996 souffrait de quelques deacutefauts (cf rapport 1996)

La conversion numeacuterique analogique

Pour reacutealiser la conversion numeacuterique analogique nous avons choisit un pont agrave reacutesistance R-2R

Nous pouvons consideacuterer que chaque bit est relieacute agrave un geacuteneacuterateur ideacuteal de tension (qui deacutelivre 0v ou 5v) Par conseacutequent la reacutesistance eacutequivalente quelque soit lrsquoeacutetat des bits et quelques soit le nombre de bits vue entre la sortie et la masse sera eacutegal agrave R

La tension Vs en fonction de lrsquoeacutetat des bits sera

Ce type de CAN eacutetant tregraves classique nous nrsquoindiquerons pas les deacutemonstrations toutefois vous pourrez les trouver tregraves facilement sur Internet ou sur le Cd-rom drsquoannexes joint au dossier

Le montage de Thevenin eacutequivalent est donc

Nous avons jugeacute qursquoune discreacutetisation sur 8 bits eacutetait un peu superflu crsquoest pourquoi nous nous contenterons de 4 bits (ce qui repreacutesentent quand mecircme 16 niveaux de vitesse)

bull Lrsquoadaptation du niveau de tension

Nous avons agrave la sortie du CAN une tension qui srsquoeacutetend de 0 agrave 5v or la commande des cartes Escap ce fait entre -5v et +5v

On peut voir cette adaptation comme lrsquoajout drsquoun offset de -25v et une amplification de gain 2

Voici le montage reacutealisant cette conversion

M1 est un montage suiveur qui lsquorecopiersquo la tension aux bornes de P1 mais sous une impeacutedance constante et eacutegale agrave 4R En 1996 lrsquoeacutequipe avait brancheacute P1 directement sur M3 mais cela a pour inconveacutenient de faire varier agrave la fois lrsquooffset et la penteLe potentiomegravetre P1 permet drsquoajuster lrsquooffset (permet par conseacutequent de reacutegler lrsquoarrecirct complet de moteur) (La valeur theacuteorique de lrsquooffset est 5V (cf formule en M3))

M2 est aussi un montage suiveur Le potentiomegravetre P2 permet drsquoajuster la pente (qui doit avoir un coefficient directeur de 2) Comme M2 est connecteacute au CAN dont la reacutesistance interne est de R P2 doit ecirctre a peut precirct eacutegal agrave R de la sorte la branche aura une reacutesistance eacutequivalente de 2R

M3 Sommateur (Vs = - 2 (Ve + Voffset))

Qursquoelle valeur choisir pour R

Theacuteoriquement on peut choisir nrsquoimporte quelle valeur pour R mais en pratique si R est trop petite une intensiteacute importante serait consommeacutee sans raison et si R est trop grande la forte impeacutedance du montage le rendra tregraves sensible aux parasites (secteur moteurshellip)Ce montage a eacuteteacute testeacute et fonctionne correctement pour R=5k les amplificateurs opeacuterationnels utiliseacutes sont des LM324 mais drsquoautres seraient tout agrave fait envisageables (peu de contraintes de vitesse et de tensions de deacutechets)

4 Conclusion

Nous avons preacutefeacutereacute ne pas utiliser les cartes Escap car les moteurs ne renvoient pas une position sous forme drsquoimpulsion mais une vitesse Etant donneacute que nous avions envisageacute un repeacuterage par odomeacutetrie cela compliquait consideacuterablement la tache

Toutefois il faut savoir que cette solution a eacuteteacute testeacutee et fonctionne tregraves bien (bonne preacutecision bonne dynamique) ainsi dans le cas ougrave le repeacuterage ne se fait pas par odomeacutetrie mais des balises exteacuterieures sachez que cette solution est tregraves pratique agrave utiliser En effet pour imposer une vitesse il suffit au microcontrocircleur drsquoappliquer sur un port un mot binaire correspondant agrave la vitesse voulue hellip et crsquoest tout La carte Escap se charge du reste

5 Carte drsquoasservissement numeacuterique laquo artisanale raquo

La carte reacutealiseacutee baseacutee sur un microcontrocircleur PIC 16F877A srsquoest aveacutereacutee fonctionnelle mais les tests drsquoalgorithmes drsquoasservissement nrsquoont pas eacuteteacute effectueacutesEn effet lrsquoutilisation de cette solution neacutecessite un microcontrocircleur deacutedieacute agrave lrsquoasservissement capable de communiquer via un protocole agrave deacutefinir avec la laquo carte megravere raquo (centralisant les retours des autres capteurs du robot et agissant sur les diffeacuterents actionneurs en fonction de la strateacutegie)Or afin de limiter le nombre de microcontrocircleurs sur le robot et du fait que lrsquoon dispose drsquoun budget suffisant nous avons deacutecideacute drsquoessayer drsquoutiliser des composants speacuteciaux reacutealisant lrsquoasservissement

Le systegraveme se deacutecompose en

- Un microcontrocircleur pour appliquer la PWM asservir et commander- Une carte de puissance pour chaque moteur baseacutee sur un LMD18200- Une carte compteur drsquoimpulsions pour les codeurs

Afin de favoriser lrsquointeractiviteacute et les reacuteglages jrsquoai ajouteacute une carte afficheur LCD avec 6 boutons sur la carte microcontrocircleur

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 29: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

3 Systegraveme PID

httpwwwancrorgfichtechactionpidindexhtm

a Principe

Pour pouvoir tester un asservissement il faut dabord reacutealiser une plate-forme de deacuteveloppement le plus geacuteneacuteralement du type suivant Mais pour commencer un brin de theacuteorie illustreacute par des exemples Le scheacutema de principe est repreacutesenteacute ci-dessous

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

Nous avons bien un scheacutema en boucle fermeacutee puisque la sortie du systegraveme est reacuteinjecteacutee dans lentreacutee Les trois blocs bleus correspondent chacun agrave une fonctionnaliteacute Ki est le coefficient inteacutegral Kp le coefficient proportionnel et Kd le coefficient deacuteriveacute Chacun de ces coefficients a une fonctionnaliteacute bien preacutecise Commenccedilons par le plus simple le proportionnel

b Asservissement P

Lasservissement proportionnel est essentiel au fonctionnement du PID Il permet essentiellement de donner de la puissance au moteur Voici quelques reacutesultats dexpeacuterimentations avec Ki=0 et Kd=0

La courbe noire repreacutesente la consigne que lon deacutesire atteindre (Ud) cest un eacutechelon de valeur 32 La courbe bleue repreacutesente la vitesse reacuteelle du systegraveme (Y) Comme vous pouvez le constater plus Kp est grand plus le systegraveme converge vite vers sa valeur finale Mais en contrepartie pour des valeurs de Kp trop grandes le systegraveme oscille Mais lagrave nest pas notre plus gros problegraveme en effet sur ces courbes on voit nettement que la vitesse du moteur natteint jamais la vitesse deacutesireacutee Cest ce que lon appelle lerreur statique elle correspond agrave la diffeacuterence entre la vitesse reacuteelle et la vitesse deacutesireacutee en reacutegime eacutetablie (une fois que le systegraveme sest stabiliseacute) Pour compenser cette erreur statique on rajoute le terme inteacutegral

c Asservissement PI

Le correcteur inteacutegral sert principalement agrave supprimer lerreur statique Lideacutee principale est de charger ou inteacutegrer lerreur depuis le deacutebut et dajouter cette erreur agrave la consigne jusquagrave ce quelle devienne nulle Lorsque cette erreur est nulle le terme inteacutegral se stabilise et il compense parfaitement lerreur entre la consigne et la vitesse reacuteelle Deacutemonstration en image

On voit cette fois-ci que le terme inteacutegral a bien fonctionneacute et que lerreur statique est nulle On constate aussi que plus le gain Ki est grand plus le systegraveme converge vite En revanche plus Ki est grand plus le systegraveme oscille et plus le deacutepassement est grand Sur des asservissements en position le terme deacuteriveacute permet de diminuer le deacutepassement et les oscillations Nous allons voir que dans notre cas nous avons quelques problegravemes

d Asservissement PID ou agrave avance de phase

On a donc rajouteacute le terme deacuteriveacute comme tout bon livre dautomatique le preacuteconise et voici les reacutesultats

Cette fois ci jai choisi de repreacutesenter la tension appliqueacutee au moteur (U) le problegraveme est bien plus flagrant ici Vous voyez que lorsque lon ajoute le terme deacuteriveacute la commande est extrecircmement bruiteacutee En reacutealiteacute on somme agrave la commande la deacuteriveacutee de la vitesse reacuteelle que lon multiplie par un gain Kd La deacuteriveacutee dune vitesse est une acceacuteleacuteration cela signifie que lon amplifie tous les bruits dacceacuteleacuteration et en plus on les multiplient par un gain Kd Donc rajoute du bruit amplifieacute dans la commande Alors pourquoi mettent t-ils ce terme deacuteriveacutee dans les livres Simplement parce que ce bruit est typique des asservissement en vitesse Sur des asservissements en position ce problegraveme est moins freacutequent car la deacuteriveacutee de la position est la vitesse

Ici le problegraveme eacutetait visible parce que nous avons reacutealiseacute toutes ces courbes sur un systegraveme reacuteel Si nous avions simuleacute ces reacutesultats lacceacuteleacuteration naurait pas eacuteteacute bruiteacutee et les courbes auraient eacuteteacute parfaites Pour impleacutementer ce PID sur notre robot il a fallu programmer en numeacuterique une deacuteriveacutee et une inteacutegrale

e PID numeacuterique et reacuteglage

Notre premier problegraveme est de programmer le terme inteacutegral Il existe une meacutethode qui consiste agrave estimer la surface entre deux eacutechantillons mais dans notre cas nous avons des problegravemes dus aux bruits et agrave la freacutequence deacutechantillonnage Alors il faut sommer toutes les erreurs depuis de deacutebut

Notre second problegraveme est de programmer le terme deacuteriveacute La meacutethode ici est de calculer la pente entre deux eacutechantillons de e Theacuteoriquement cela revient agrave faire le calcul suivant

Avec la peacuteriode deacutechantillonnage Pour faire un asservissement numeacuterique il faut impeacuterativement avoir une peacuteriode fixe Pour gagner du temps de calcul geacuteneacuteralement on inteacutegre directement dans le gain Kd

Voici un lalgorithme exemple

Ti = 0 Initialise le terme inteacutegral

for ( i=1 i lt= Nb_cycles i++ )

Init_timers (1) Initialise le timer agrave notre peacuteriode 1 ms

Y = Codeur () Stoque la valeur du codeur dans Y Rst_codeur () Remet le codeur agrave zeacutero Ud = Consigne () Mise agrave jour de la consigne e_old=e Stoque e(t-1) e = Ud - Y Calcul de lerreur Ti = Ti + e Calcul de linteacutegral Calcul du PID U = Kp e Terme proportionnel

+ Ki Ti Terme inteacutegral + Kd ( e - e_old ) Terme deacuteriveacute Moteur (U) On applique la consigne

while ( end_timer() ) On attend la fin de la peacuteriode

Pour le reacuteglage des gains Kp Ki et Kd il existe diffeacuterentes meacutethodes Ici nous lavons fait de maniegravere empirique et le reacutesultats est plutocirct bon Linconveacutenient de ces meacutethodes est quelles demandent un modegravele du systegraveme ce qui est geacuteneacuteralement dur agrave produire Il existe

aussi des composants programmables qui permettent de faire directement lasservissement numeacuterique (HCTL 1100 LM629) Ils sont exactement baseacutes sur la meacutethode preacutesenteacutee ici

Pour ce qui est du reacuteglage des correcteurs lrsquooptimal est drsquoutiliser la meacutethode de lrsquooptimum dissymeacutetrique une fois que lrsquoon agrave reacutealiseacute le modegravele du systegraveme La plus part des eacutecoles ne reacutealisent pas ce modegravele et ce limite donc agrave une correction empirique en reacutealisant des tests ou en utilisant la meacutethode Ziegler-Nichols agrave partir de la reacuteponse agrave un eacutechelon de tension

Par la suite nous rappellerons les meacutethodes de Ziegler-Nichols et de lrsquooptimum dissymeacutetrique

f Les meacutethodes de Ziegler-Nichols

Ces meacutethodes fournissent des reacuteglages pour des correcteurs de type PID (pouvant ne comporter quune action Proportionnelle une action Proportionnelle et une action Inteacutegrale ou les 3 actions simultaneacutement) dont la structure est la suivante

bull MEacuteTHODE DE ZIEGLER NICHOLS TEMPORELLE

Elle est adapteacutee aux systegravemes stables en boucle ouverte qui ont une reacuteponse apeacuteriodique La reacuteponse agrave un eacutechelon unitaire du systegraveme physique doit ecirctre enregistreacutee Diffeacuterentes caracteacuteristiques de la reacuteponse obtenue sont mesureacutees

Le modegravele approcheacute utiliseacutee par Ziegler Nichols comporte une constante de temps et un retard pur ou bien un retard pur et un inteacutegrateur

Si le systegraveme physique comporte un inteacutegrateur les mesures de a et de L demeurent disponibles sur le deacutebut de la reacuteponse

Les reacuteglages suggeacutereacutes par la meacutethode temporelle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 1a - -correcteur PI 09a 3L -

correcteur PID 12a 2L L2Concernant le raffinement des reacuteglages augmenter Kp ou diminuer Ti augment les

oscillations de la sortie

bull MEacuteTHODE DE ZIEGLER NICHOLS FREacuteQUENTIELLE

Cette meacutethode convient particuliegraverement bien aux systegravemes instables en boucle ouverte pour lesquels la meacutethode temporelle nest pas envisageable Lexpeacuterimentation se fait sur le systegraveme boucleacute avec un simple gain proportionnel qui doit ecirctre stable Le principe est de modifier la valeur du gain par essai-erreur jusquagrave atteindre la limite de stabiliteacute (pheacutenomegravene de pompage) Il reste agrave relever le gain limite K0 obtenu et agrave mesurer la peacuteriode T0 des oscillations de la reacuteponse obtenue

Les reacuteglages suggeacutereacutes par la meacutethode freacutequentielle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 05 K0 - -correcteur PI 045 K0 08 T0 -

correcteur PID 06 K0 05 T0 0125 T0

A la page Internet suivante vous trouverez un simulateur de cette meacutethode

httpwww-hadocensieginpgfrhadocateliersreglageEmpCorrReglEmpCorrDroithtml

g Meacutethode de lrsquooptimum dyssimeacutetique (voir poly MC06 Chap 5 et 8)

Cette meacutethode srsquoapplique une fois le modegravele reacutealiseacute et mis sous la forme drsquoun second ordre

et on obtient le correcteur PI

pour une surtension deacutesireacutee QdB

Q = 10^(QdB20)λ= radic(Qsup2(Qsup2-1))Δφ = arcos (1 λ)α= ((1+sin(Δφ))cos(Δφ))sup2ωN= ωQαω0= ωQradicαKP= ω0 λ KQ

4 Les microcontrocircleurs

a Avant propos

Cette fiche se veut ecirctre sous la forme dun projet Un projet non termineacute ougrave chacun peut apporter sa contribution (ameacuteliorations adaptations corrections etc)De ce fait ces pages sont ameneacutees agrave eacutevoluer et vous-mecircme pourrez participer agrave leur eacutevolution

Pourquoi avoir choisit un tel mode de travail Tout simplement parce que le sujet est vaste et que des variations sont possibles suivant lutilisation quen feront les diffeacuterentes personnes

Le but de ce projet est de reacutealiser une double asservissement de vitesse (type PID) de deux moteurs sur un seul PIC (type 16F877) Lutiliteacute majeure eacutetant de faire rouler un robot bien droit et agrave la bonne vitesse A quoi ccedila sert plus preacuteciseacutement

Avec un seul PIC ce projet permet aux roboticiens amateurs et chevronneacutes de reacutealiser facilement leur asservissement de vitesse de moteurs agrave courant continu (en geacuteneacuteral les moteurs de propulsions de leur robot mais ccedila peut ecirctre bien sucircr dautres moteurs) La commande de lasservissement pourra se faire agrave terme en liaison seacuterie (deacutejagrave fait) I2C ou par bus ISA

b Avantages

Il existe bien sucircr dautres systegravemes qui gegraverent un asservissement de vitesses Des systegravemes professionnels existent comme les LM629 Ils ont linconveacutenient decirctre cher (et ce pour un seul moteur) et relativement complexes

Pourquoi chercher un fusil pour chasser des moustiques Le double asservissement sur PIC vous coucircte le prix dun PIC soit environ 15Euro pour un 16F877 actuellement et ce pour 2 moteurs Ce double asservissement se veut relativement simple De plus vous pouvez en modifier le programme et ladapter agrave vos besoins

c Inconveacutenients

Les personnes qui auront les moyens preacutefeacutererons opter pour un systegraveme professionnel certainement pour des raisons de fiabiliteacute mais cest agrave leurs risques et peacuterils -)La puissance du PIC eacutetant limiteacutee il ne peut pas reacutealiser des PID trop rapides ou trop complexes Il y a en particulier une limitation sur le nombre dimpulsions par seconde quil est capable de geacuterer

Le langage utiliseacute eacutetant le C il faut une licence du logiciel pour pouvoir modifier et recompiler le code source c Mais le projet se veut geacuteneacuterique Une version donneacutee pourra ecirctre utiliseacute sans recompilation en respectant quelques contraintes

d Asservissement

En fait on pourrait imaginer quil suffirait denvoyer au moteur une puissance constante pour quil tourne tout le temps agrave la mecircme vitesse Ce nest pas vrai du tout Tout dabord 2 moteurs dune mecircme seacuterie nauront pas forceacutement le mecircme comportement Ensuite parce que les niveaux de tension ou dautre diffeacuterences eacutelectriques peuvent jouer Enfin parce que des influences exteacuterieures (obstacles frein meacutecanique du robot) peuvent jouer

Du coup il est tregraves difficile de faire aller un moteur agrave la vitesse voulue Parfois ce nest pas gecircnant mais ccedila peut lecirctre Un exemple classique est le robot avec 2 roues motrices type char une configuration qui est tregraves courante Mais pour que ce robot aille droit il faut que les 2 moteurs aillent exactement agrave la mecircme vitesse

La solution est de faire un asservissement Cest a dire moduler dynamiquement la puissance envoyeacute aux moteurs suivant leur vitesse mesureacutee afin dadapter celle-ci agrave ce qui est deacutesireacuteeCela implique un eacuteleacutement tregraves important pour asservir il faut un capteur de vitesse du moteur En geacuteneacuteral il sagit dun compte-tour qui enverra N impulsions (ou pas) par tour de moteur Ensuite un programme va calculer en fonction de la vitesse mesureacutee du moteur la puissance agrave utiliser

Les asservissements sont constamment en train de chercher leacutequilibre Il faut bien comprendre quils mettent un certain temps agrave latteindre et ce dernier peut aussi ecirctre instable si lasservissement est mal reacutegleacute

Lasservissement quon va utiliser ici est un classique PIDou plus preacuteciseacutement un PI car pour des raisons de vitesses de traitement la composante deacuteriveacutee est laisseacutee de coteacute (mais rien de difficile agrave rajouter)

Le PID ou Proportionnel Inteacutegrale Deacuteriveacute est une meacutethode de calcul dasservissement

Soit Kp Ki et Kd les coefficients proportionnels inteacutegrale et deacuteriveacuteSoit e lerreur Vitesse mesureacutee moins vitesse demandeacuteeSoit Ti le terme inteacutegral dabord initialiseacute agrave 0

Consigne a appliquer (PWM) = Kp e + (1Ki) (Ti += e) + Kd (e - e(t-1))

On pourrait dire des pages et des pages sur le PID et ce nest pas mon but ici Merci de vous reporter au lien ci-dessous

Pour plus de deacutetails sur le PID la page de lANCR httpwwwancrorgfichtechactionpidindexhtmChez les Fribottes la Simulation de Jean-Claude httpwwwwikifreefrWiKiFriindexphpSimulateur20de20PID

e Le pic

Le PIC est un petit microcontrocircleur assez bon marche et simple a programmer comme a utiliser

La aussi je vais pas rentrer dans les deacutetails vous pouvez vous reporter agrave la bdtech du site Fribotte et en particulier aux cours de Bigonoff

Le PIC est ici programmeacute en C voir la page Fribotte ici Lutilisation du langage C permet dalleacuteger consideacuterablement le deacuteveloppement dune application compliqueacutee

2 Module AVR

httpwwwenseirbfr~matzfravrphp

Tregraves peu de renseignement sur ce module sinon ces informations drsquoun eacutetudiant de lrsquoEnseirb

Depuis plusieurs anneacutees je participe agrave la coupe de robotique E=M6 dont lobjectif pour chaque eacutequipe est de fabriquer un robot autonome devant se conformer agrave un regraveglement Pour plus dinfos vous pouvez vous rendre sur le site de mon eacutequipe Microb Technology ou bien sur le site de Planegravete Sciences lorganisme beacuteneacutevole qui organise cette compeacutetition

Jai deacutecouvert en 2001 les microcontrocircleurs Atmel AVR auxquels je me suis beaucoup attacheacute dune part parce quils sont assez performants pour des microcontrocircleurs 8 bits mais aussi et surtout car le fameux compilateur libre GCC est capable de compiler du code C pour ces petites becirctes Il existe de surcroicirct plusieurs outils libres permettant de les programmer de les simuler etc

Le but de ce projet est donc de deacutevelopper des modules servant dinterface geacuteneacuterique avec le hardware du microcontrocircleur quel que soit la version (par exemple les UART inclus dans les AVR AtMega sont diffeacuterents de ceux preacutesents dans les petits AVR) et de deacutevelopper des modules utiles pour certaines utilisations usuelles et pas seulement pour la coupe E=M6 (codage de hamming asservissement chiffrement etc)

Vous pouvez contacter leacutequipe de deacuteveloppement agrave avr-devdroids-corporg Pour le moment aucune release na eacuteteacute faite mais le travail est deacutejagrave bien avanceacute Chaque soir un screenshot du CVS est reacutealiseacute Il peut ne pas compiler mais normalement ccedila devrait fonctionner Voici le lien

3 Modules drsquoasservissement analogique laquo Escap raquo

Nous avons essayeacute de reacutecupeacuterer les cartes de commande Escap pour moteurs Escap qui avaient eacuteteacute utiliseacutees en 96 et 98 avec succegraves

Nous les avons monteacutes sur une base roulante qui pesait en tout 74 kgVoici grosso-modo leurs avantages et leurs inconveacutenients (pour les notices techniques voir le rapport 96 ou 98)

a Avantages

Cette carte inclut directement un asservissement avec correcteur PI la commande de puissance les ponts en H

Elle est tregraves facile agrave utiliser Elle est speacutecialement conccedilue pour les moteurs Escap que nous avons donc

parfaitement adapteacutee

b Inconveacutenients

Les moteurs ne fonctionnent correctement que sous 24v Les cartes et les moteurs semblent assez gourment Les cartes nantis de gros radiateurs sont relativement encombrantes Les tachymegravetres monteacutes sur les moteurs ne donnent pas une indication de position

mais de vitesse (qui plus est en analogique)

Nous avons preacutefeacutereacute refaire la partie commande car celle de 1996 souffrait de quelques deacutefauts (cf rapport 1996)

La conversion numeacuterique analogique

Pour reacutealiser la conversion numeacuterique analogique nous avons choisit un pont agrave reacutesistance R-2R

Nous pouvons consideacuterer que chaque bit est relieacute agrave un geacuteneacuterateur ideacuteal de tension (qui deacutelivre 0v ou 5v) Par conseacutequent la reacutesistance eacutequivalente quelque soit lrsquoeacutetat des bits et quelques soit le nombre de bits vue entre la sortie et la masse sera eacutegal agrave R

La tension Vs en fonction de lrsquoeacutetat des bits sera

Ce type de CAN eacutetant tregraves classique nous nrsquoindiquerons pas les deacutemonstrations toutefois vous pourrez les trouver tregraves facilement sur Internet ou sur le Cd-rom drsquoannexes joint au dossier

Le montage de Thevenin eacutequivalent est donc

Nous avons jugeacute qursquoune discreacutetisation sur 8 bits eacutetait un peu superflu crsquoest pourquoi nous nous contenterons de 4 bits (ce qui repreacutesentent quand mecircme 16 niveaux de vitesse)

bull Lrsquoadaptation du niveau de tension

Nous avons agrave la sortie du CAN une tension qui srsquoeacutetend de 0 agrave 5v or la commande des cartes Escap ce fait entre -5v et +5v

On peut voir cette adaptation comme lrsquoajout drsquoun offset de -25v et une amplification de gain 2

Voici le montage reacutealisant cette conversion

M1 est un montage suiveur qui lsquorecopiersquo la tension aux bornes de P1 mais sous une impeacutedance constante et eacutegale agrave 4R En 1996 lrsquoeacutequipe avait brancheacute P1 directement sur M3 mais cela a pour inconveacutenient de faire varier agrave la fois lrsquooffset et la penteLe potentiomegravetre P1 permet drsquoajuster lrsquooffset (permet par conseacutequent de reacutegler lrsquoarrecirct complet de moteur) (La valeur theacuteorique de lrsquooffset est 5V (cf formule en M3))

M2 est aussi un montage suiveur Le potentiomegravetre P2 permet drsquoajuster la pente (qui doit avoir un coefficient directeur de 2) Comme M2 est connecteacute au CAN dont la reacutesistance interne est de R P2 doit ecirctre a peut precirct eacutegal agrave R de la sorte la branche aura une reacutesistance eacutequivalente de 2R

M3 Sommateur (Vs = - 2 (Ve + Voffset))

Qursquoelle valeur choisir pour R

Theacuteoriquement on peut choisir nrsquoimporte quelle valeur pour R mais en pratique si R est trop petite une intensiteacute importante serait consommeacutee sans raison et si R est trop grande la forte impeacutedance du montage le rendra tregraves sensible aux parasites (secteur moteurshellip)Ce montage a eacuteteacute testeacute et fonctionne correctement pour R=5k les amplificateurs opeacuterationnels utiliseacutes sont des LM324 mais drsquoautres seraient tout agrave fait envisageables (peu de contraintes de vitesse et de tensions de deacutechets)

4 Conclusion

Nous avons preacutefeacutereacute ne pas utiliser les cartes Escap car les moteurs ne renvoient pas une position sous forme drsquoimpulsion mais une vitesse Etant donneacute que nous avions envisageacute un repeacuterage par odomeacutetrie cela compliquait consideacuterablement la tache

Toutefois il faut savoir que cette solution a eacuteteacute testeacutee et fonctionne tregraves bien (bonne preacutecision bonne dynamique) ainsi dans le cas ougrave le repeacuterage ne se fait pas par odomeacutetrie mais des balises exteacuterieures sachez que cette solution est tregraves pratique agrave utiliser En effet pour imposer une vitesse il suffit au microcontrocircleur drsquoappliquer sur un port un mot binaire correspondant agrave la vitesse voulue hellip et crsquoest tout La carte Escap se charge du reste

5 Carte drsquoasservissement numeacuterique laquo artisanale raquo

La carte reacutealiseacutee baseacutee sur un microcontrocircleur PIC 16F877A srsquoest aveacutereacutee fonctionnelle mais les tests drsquoalgorithmes drsquoasservissement nrsquoont pas eacuteteacute effectueacutesEn effet lrsquoutilisation de cette solution neacutecessite un microcontrocircleur deacutedieacute agrave lrsquoasservissement capable de communiquer via un protocole agrave deacutefinir avec la laquo carte megravere raquo (centralisant les retours des autres capteurs du robot et agissant sur les diffeacuterents actionneurs en fonction de la strateacutegie)Or afin de limiter le nombre de microcontrocircleurs sur le robot et du fait que lrsquoon dispose drsquoun budget suffisant nous avons deacutecideacute drsquoessayer drsquoutiliser des composants speacuteciaux reacutealisant lrsquoasservissement

Le systegraveme se deacutecompose en

- Un microcontrocircleur pour appliquer la PWM asservir et commander- Une carte de puissance pour chaque moteur baseacutee sur un LMD18200- Une carte compteur drsquoimpulsions pour les codeurs

Afin de favoriser lrsquointeractiviteacute et les reacuteglages jrsquoai ajouteacute une carte afficheur LCD avec 6 boutons sur la carte microcontrocircleur

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 30: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

b Asservissement P

Lasservissement proportionnel est essentiel au fonctionnement du PID Il permet essentiellement de donner de la puissance au moteur Voici quelques reacutesultats dexpeacuterimentations avec Ki=0 et Kd=0

La courbe noire repreacutesente la consigne que lon deacutesire atteindre (Ud) cest un eacutechelon de valeur 32 La courbe bleue repreacutesente la vitesse reacuteelle du systegraveme (Y) Comme vous pouvez le constater plus Kp est grand plus le systegraveme converge vite vers sa valeur finale Mais en contrepartie pour des valeurs de Kp trop grandes le systegraveme oscille Mais lagrave nest pas notre plus gros problegraveme en effet sur ces courbes on voit nettement que la vitesse du moteur natteint jamais la vitesse deacutesireacutee Cest ce que lon appelle lerreur statique elle correspond agrave la diffeacuterence entre la vitesse reacuteelle et la vitesse deacutesireacutee en reacutegime eacutetablie (une fois que le systegraveme sest stabiliseacute) Pour compenser cette erreur statique on rajoute le terme inteacutegral

c Asservissement PI

Le correcteur inteacutegral sert principalement agrave supprimer lerreur statique Lideacutee principale est de charger ou inteacutegrer lerreur depuis le deacutebut et dajouter cette erreur agrave la consigne jusquagrave ce quelle devienne nulle Lorsque cette erreur est nulle le terme inteacutegral se stabilise et il compense parfaitement lerreur entre la consigne et la vitesse reacuteelle Deacutemonstration en image

On voit cette fois-ci que le terme inteacutegral a bien fonctionneacute et que lerreur statique est nulle On constate aussi que plus le gain Ki est grand plus le systegraveme converge vite En revanche plus Ki est grand plus le systegraveme oscille et plus le deacutepassement est grand Sur des asservissements en position le terme deacuteriveacute permet de diminuer le deacutepassement et les oscillations Nous allons voir que dans notre cas nous avons quelques problegravemes

d Asservissement PID ou agrave avance de phase

On a donc rajouteacute le terme deacuteriveacute comme tout bon livre dautomatique le preacuteconise et voici les reacutesultats

Cette fois ci jai choisi de repreacutesenter la tension appliqueacutee au moteur (U) le problegraveme est bien plus flagrant ici Vous voyez que lorsque lon ajoute le terme deacuteriveacute la commande est extrecircmement bruiteacutee En reacutealiteacute on somme agrave la commande la deacuteriveacutee de la vitesse reacuteelle que lon multiplie par un gain Kd La deacuteriveacutee dune vitesse est une acceacuteleacuteration cela signifie que lon amplifie tous les bruits dacceacuteleacuteration et en plus on les multiplient par un gain Kd Donc rajoute du bruit amplifieacute dans la commande Alors pourquoi mettent t-ils ce terme deacuteriveacutee dans les livres Simplement parce que ce bruit est typique des asservissement en vitesse Sur des asservissements en position ce problegraveme est moins freacutequent car la deacuteriveacutee de la position est la vitesse

Ici le problegraveme eacutetait visible parce que nous avons reacutealiseacute toutes ces courbes sur un systegraveme reacuteel Si nous avions simuleacute ces reacutesultats lacceacuteleacuteration naurait pas eacuteteacute bruiteacutee et les courbes auraient eacuteteacute parfaites Pour impleacutementer ce PID sur notre robot il a fallu programmer en numeacuterique une deacuteriveacutee et une inteacutegrale

e PID numeacuterique et reacuteglage

Notre premier problegraveme est de programmer le terme inteacutegral Il existe une meacutethode qui consiste agrave estimer la surface entre deux eacutechantillons mais dans notre cas nous avons des problegravemes dus aux bruits et agrave la freacutequence deacutechantillonnage Alors il faut sommer toutes les erreurs depuis de deacutebut

Notre second problegraveme est de programmer le terme deacuteriveacute La meacutethode ici est de calculer la pente entre deux eacutechantillons de e Theacuteoriquement cela revient agrave faire le calcul suivant

Avec la peacuteriode deacutechantillonnage Pour faire un asservissement numeacuterique il faut impeacuterativement avoir une peacuteriode fixe Pour gagner du temps de calcul geacuteneacuteralement on inteacutegre directement dans le gain Kd

Voici un lalgorithme exemple

Ti = 0 Initialise le terme inteacutegral

for ( i=1 i lt= Nb_cycles i++ )

Init_timers (1) Initialise le timer agrave notre peacuteriode 1 ms

Y = Codeur () Stoque la valeur du codeur dans Y Rst_codeur () Remet le codeur agrave zeacutero Ud = Consigne () Mise agrave jour de la consigne e_old=e Stoque e(t-1) e = Ud - Y Calcul de lerreur Ti = Ti + e Calcul de linteacutegral Calcul du PID U = Kp e Terme proportionnel

+ Ki Ti Terme inteacutegral + Kd ( e - e_old ) Terme deacuteriveacute Moteur (U) On applique la consigne

while ( end_timer() ) On attend la fin de la peacuteriode

Pour le reacuteglage des gains Kp Ki et Kd il existe diffeacuterentes meacutethodes Ici nous lavons fait de maniegravere empirique et le reacutesultats est plutocirct bon Linconveacutenient de ces meacutethodes est quelles demandent un modegravele du systegraveme ce qui est geacuteneacuteralement dur agrave produire Il existe

aussi des composants programmables qui permettent de faire directement lasservissement numeacuterique (HCTL 1100 LM629) Ils sont exactement baseacutes sur la meacutethode preacutesenteacutee ici

Pour ce qui est du reacuteglage des correcteurs lrsquooptimal est drsquoutiliser la meacutethode de lrsquooptimum dissymeacutetrique une fois que lrsquoon agrave reacutealiseacute le modegravele du systegraveme La plus part des eacutecoles ne reacutealisent pas ce modegravele et ce limite donc agrave une correction empirique en reacutealisant des tests ou en utilisant la meacutethode Ziegler-Nichols agrave partir de la reacuteponse agrave un eacutechelon de tension

Par la suite nous rappellerons les meacutethodes de Ziegler-Nichols et de lrsquooptimum dissymeacutetrique

f Les meacutethodes de Ziegler-Nichols

Ces meacutethodes fournissent des reacuteglages pour des correcteurs de type PID (pouvant ne comporter quune action Proportionnelle une action Proportionnelle et une action Inteacutegrale ou les 3 actions simultaneacutement) dont la structure est la suivante

bull MEacuteTHODE DE ZIEGLER NICHOLS TEMPORELLE

Elle est adapteacutee aux systegravemes stables en boucle ouverte qui ont une reacuteponse apeacuteriodique La reacuteponse agrave un eacutechelon unitaire du systegraveme physique doit ecirctre enregistreacutee Diffeacuterentes caracteacuteristiques de la reacuteponse obtenue sont mesureacutees

Le modegravele approcheacute utiliseacutee par Ziegler Nichols comporte une constante de temps et un retard pur ou bien un retard pur et un inteacutegrateur

Si le systegraveme physique comporte un inteacutegrateur les mesures de a et de L demeurent disponibles sur le deacutebut de la reacuteponse

Les reacuteglages suggeacutereacutes par la meacutethode temporelle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 1a - -correcteur PI 09a 3L -

correcteur PID 12a 2L L2Concernant le raffinement des reacuteglages augmenter Kp ou diminuer Ti augment les

oscillations de la sortie

bull MEacuteTHODE DE ZIEGLER NICHOLS FREacuteQUENTIELLE

Cette meacutethode convient particuliegraverement bien aux systegravemes instables en boucle ouverte pour lesquels la meacutethode temporelle nest pas envisageable Lexpeacuterimentation se fait sur le systegraveme boucleacute avec un simple gain proportionnel qui doit ecirctre stable Le principe est de modifier la valeur du gain par essai-erreur jusquagrave atteindre la limite de stabiliteacute (pheacutenomegravene de pompage) Il reste agrave relever le gain limite K0 obtenu et agrave mesurer la peacuteriode T0 des oscillations de la reacuteponse obtenue

Les reacuteglages suggeacutereacutes par la meacutethode freacutequentielle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 05 K0 - -correcteur PI 045 K0 08 T0 -

correcteur PID 06 K0 05 T0 0125 T0

A la page Internet suivante vous trouverez un simulateur de cette meacutethode

httpwww-hadocensieginpgfrhadocateliersreglageEmpCorrReglEmpCorrDroithtml

g Meacutethode de lrsquooptimum dyssimeacutetique (voir poly MC06 Chap 5 et 8)

Cette meacutethode srsquoapplique une fois le modegravele reacutealiseacute et mis sous la forme drsquoun second ordre

et on obtient le correcteur PI

pour une surtension deacutesireacutee QdB

Q = 10^(QdB20)λ= radic(Qsup2(Qsup2-1))Δφ = arcos (1 λ)α= ((1+sin(Δφ))cos(Δφ))sup2ωN= ωQαω0= ωQradicαKP= ω0 λ KQ

4 Les microcontrocircleurs

a Avant propos

Cette fiche se veut ecirctre sous la forme dun projet Un projet non termineacute ougrave chacun peut apporter sa contribution (ameacuteliorations adaptations corrections etc)De ce fait ces pages sont ameneacutees agrave eacutevoluer et vous-mecircme pourrez participer agrave leur eacutevolution

Pourquoi avoir choisit un tel mode de travail Tout simplement parce que le sujet est vaste et que des variations sont possibles suivant lutilisation quen feront les diffeacuterentes personnes

Le but de ce projet est de reacutealiser une double asservissement de vitesse (type PID) de deux moteurs sur un seul PIC (type 16F877) Lutiliteacute majeure eacutetant de faire rouler un robot bien droit et agrave la bonne vitesse A quoi ccedila sert plus preacuteciseacutement

Avec un seul PIC ce projet permet aux roboticiens amateurs et chevronneacutes de reacutealiser facilement leur asservissement de vitesse de moteurs agrave courant continu (en geacuteneacuteral les moteurs de propulsions de leur robot mais ccedila peut ecirctre bien sucircr dautres moteurs) La commande de lasservissement pourra se faire agrave terme en liaison seacuterie (deacutejagrave fait) I2C ou par bus ISA

b Avantages

Il existe bien sucircr dautres systegravemes qui gegraverent un asservissement de vitesses Des systegravemes professionnels existent comme les LM629 Ils ont linconveacutenient decirctre cher (et ce pour un seul moteur) et relativement complexes

Pourquoi chercher un fusil pour chasser des moustiques Le double asservissement sur PIC vous coucircte le prix dun PIC soit environ 15Euro pour un 16F877 actuellement et ce pour 2 moteurs Ce double asservissement se veut relativement simple De plus vous pouvez en modifier le programme et ladapter agrave vos besoins

c Inconveacutenients

Les personnes qui auront les moyens preacutefeacutererons opter pour un systegraveme professionnel certainement pour des raisons de fiabiliteacute mais cest agrave leurs risques et peacuterils -)La puissance du PIC eacutetant limiteacutee il ne peut pas reacutealiser des PID trop rapides ou trop complexes Il y a en particulier une limitation sur le nombre dimpulsions par seconde quil est capable de geacuterer

Le langage utiliseacute eacutetant le C il faut une licence du logiciel pour pouvoir modifier et recompiler le code source c Mais le projet se veut geacuteneacuterique Une version donneacutee pourra ecirctre utiliseacute sans recompilation en respectant quelques contraintes

d Asservissement

En fait on pourrait imaginer quil suffirait denvoyer au moteur une puissance constante pour quil tourne tout le temps agrave la mecircme vitesse Ce nest pas vrai du tout Tout dabord 2 moteurs dune mecircme seacuterie nauront pas forceacutement le mecircme comportement Ensuite parce que les niveaux de tension ou dautre diffeacuterences eacutelectriques peuvent jouer Enfin parce que des influences exteacuterieures (obstacles frein meacutecanique du robot) peuvent jouer

Du coup il est tregraves difficile de faire aller un moteur agrave la vitesse voulue Parfois ce nest pas gecircnant mais ccedila peut lecirctre Un exemple classique est le robot avec 2 roues motrices type char une configuration qui est tregraves courante Mais pour que ce robot aille droit il faut que les 2 moteurs aillent exactement agrave la mecircme vitesse

La solution est de faire un asservissement Cest a dire moduler dynamiquement la puissance envoyeacute aux moteurs suivant leur vitesse mesureacutee afin dadapter celle-ci agrave ce qui est deacutesireacuteeCela implique un eacuteleacutement tregraves important pour asservir il faut un capteur de vitesse du moteur En geacuteneacuteral il sagit dun compte-tour qui enverra N impulsions (ou pas) par tour de moteur Ensuite un programme va calculer en fonction de la vitesse mesureacutee du moteur la puissance agrave utiliser

Les asservissements sont constamment en train de chercher leacutequilibre Il faut bien comprendre quils mettent un certain temps agrave latteindre et ce dernier peut aussi ecirctre instable si lasservissement est mal reacutegleacute

Lasservissement quon va utiliser ici est un classique PIDou plus preacuteciseacutement un PI car pour des raisons de vitesses de traitement la composante deacuteriveacutee est laisseacutee de coteacute (mais rien de difficile agrave rajouter)

Le PID ou Proportionnel Inteacutegrale Deacuteriveacute est une meacutethode de calcul dasservissement

Soit Kp Ki et Kd les coefficients proportionnels inteacutegrale et deacuteriveacuteSoit e lerreur Vitesse mesureacutee moins vitesse demandeacuteeSoit Ti le terme inteacutegral dabord initialiseacute agrave 0

Consigne a appliquer (PWM) = Kp e + (1Ki) (Ti += e) + Kd (e - e(t-1))

On pourrait dire des pages et des pages sur le PID et ce nest pas mon but ici Merci de vous reporter au lien ci-dessous

Pour plus de deacutetails sur le PID la page de lANCR httpwwwancrorgfichtechactionpidindexhtmChez les Fribottes la Simulation de Jean-Claude httpwwwwikifreefrWiKiFriindexphpSimulateur20de20PID

e Le pic

Le PIC est un petit microcontrocircleur assez bon marche et simple a programmer comme a utiliser

La aussi je vais pas rentrer dans les deacutetails vous pouvez vous reporter agrave la bdtech du site Fribotte et en particulier aux cours de Bigonoff

Le PIC est ici programmeacute en C voir la page Fribotte ici Lutilisation du langage C permet dalleacuteger consideacuterablement le deacuteveloppement dune application compliqueacutee

2 Module AVR

httpwwwenseirbfr~matzfravrphp

Tregraves peu de renseignement sur ce module sinon ces informations drsquoun eacutetudiant de lrsquoEnseirb

Depuis plusieurs anneacutees je participe agrave la coupe de robotique E=M6 dont lobjectif pour chaque eacutequipe est de fabriquer un robot autonome devant se conformer agrave un regraveglement Pour plus dinfos vous pouvez vous rendre sur le site de mon eacutequipe Microb Technology ou bien sur le site de Planegravete Sciences lorganisme beacuteneacutevole qui organise cette compeacutetition

Jai deacutecouvert en 2001 les microcontrocircleurs Atmel AVR auxquels je me suis beaucoup attacheacute dune part parce quils sont assez performants pour des microcontrocircleurs 8 bits mais aussi et surtout car le fameux compilateur libre GCC est capable de compiler du code C pour ces petites becirctes Il existe de surcroicirct plusieurs outils libres permettant de les programmer de les simuler etc

Le but de ce projet est donc de deacutevelopper des modules servant dinterface geacuteneacuterique avec le hardware du microcontrocircleur quel que soit la version (par exemple les UART inclus dans les AVR AtMega sont diffeacuterents de ceux preacutesents dans les petits AVR) et de deacutevelopper des modules utiles pour certaines utilisations usuelles et pas seulement pour la coupe E=M6 (codage de hamming asservissement chiffrement etc)

Vous pouvez contacter leacutequipe de deacuteveloppement agrave avr-devdroids-corporg Pour le moment aucune release na eacuteteacute faite mais le travail est deacutejagrave bien avanceacute Chaque soir un screenshot du CVS est reacutealiseacute Il peut ne pas compiler mais normalement ccedila devrait fonctionner Voici le lien

3 Modules drsquoasservissement analogique laquo Escap raquo

Nous avons essayeacute de reacutecupeacuterer les cartes de commande Escap pour moteurs Escap qui avaient eacuteteacute utiliseacutees en 96 et 98 avec succegraves

Nous les avons monteacutes sur une base roulante qui pesait en tout 74 kgVoici grosso-modo leurs avantages et leurs inconveacutenients (pour les notices techniques voir le rapport 96 ou 98)

a Avantages

Cette carte inclut directement un asservissement avec correcteur PI la commande de puissance les ponts en H

Elle est tregraves facile agrave utiliser Elle est speacutecialement conccedilue pour les moteurs Escap que nous avons donc

parfaitement adapteacutee

b Inconveacutenients

Les moteurs ne fonctionnent correctement que sous 24v Les cartes et les moteurs semblent assez gourment Les cartes nantis de gros radiateurs sont relativement encombrantes Les tachymegravetres monteacutes sur les moteurs ne donnent pas une indication de position

mais de vitesse (qui plus est en analogique)

Nous avons preacutefeacutereacute refaire la partie commande car celle de 1996 souffrait de quelques deacutefauts (cf rapport 1996)

La conversion numeacuterique analogique

Pour reacutealiser la conversion numeacuterique analogique nous avons choisit un pont agrave reacutesistance R-2R

Nous pouvons consideacuterer que chaque bit est relieacute agrave un geacuteneacuterateur ideacuteal de tension (qui deacutelivre 0v ou 5v) Par conseacutequent la reacutesistance eacutequivalente quelque soit lrsquoeacutetat des bits et quelques soit le nombre de bits vue entre la sortie et la masse sera eacutegal agrave R

La tension Vs en fonction de lrsquoeacutetat des bits sera

Ce type de CAN eacutetant tregraves classique nous nrsquoindiquerons pas les deacutemonstrations toutefois vous pourrez les trouver tregraves facilement sur Internet ou sur le Cd-rom drsquoannexes joint au dossier

Le montage de Thevenin eacutequivalent est donc

Nous avons jugeacute qursquoune discreacutetisation sur 8 bits eacutetait un peu superflu crsquoest pourquoi nous nous contenterons de 4 bits (ce qui repreacutesentent quand mecircme 16 niveaux de vitesse)

bull Lrsquoadaptation du niveau de tension

Nous avons agrave la sortie du CAN une tension qui srsquoeacutetend de 0 agrave 5v or la commande des cartes Escap ce fait entre -5v et +5v

On peut voir cette adaptation comme lrsquoajout drsquoun offset de -25v et une amplification de gain 2

Voici le montage reacutealisant cette conversion

M1 est un montage suiveur qui lsquorecopiersquo la tension aux bornes de P1 mais sous une impeacutedance constante et eacutegale agrave 4R En 1996 lrsquoeacutequipe avait brancheacute P1 directement sur M3 mais cela a pour inconveacutenient de faire varier agrave la fois lrsquooffset et la penteLe potentiomegravetre P1 permet drsquoajuster lrsquooffset (permet par conseacutequent de reacutegler lrsquoarrecirct complet de moteur) (La valeur theacuteorique de lrsquooffset est 5V (cf formule en M3))

M2 est aussi un montage suiveur Le potentiomegravetre P2 permet drsquoajuster la pente (qui doit avoir un coefficient directeur de 2) Comme M2 est connecteacute au CAN dont la reacutesistance interne est de R P2 doit ecirctre a peut precirct eacutegal agrave R de la sorte la branche aura une reacutesistance eacutequivalente de 2R

M3 Sommateur (Vs = - 2 (Ve + Voffset))

Qursquoelle valeur choisir pour R

Theacuteoriquement on peut choisir nrsquoimporte quelle valeur pour R mais en pratique si R est trop petite une intensiteacute importante serait consommeacutee sans raison et si R est trop grande la forte impeacutedance du montage le rendra tregraves sensible aux parasites (secteur moteurshellip)Ce montage a eacuteteacute testeacute et fonctionne correctement pour R=5k les amplificateurs opeacuterationnels utiliseacutes sont des LM324 mais drsquoautres seraient tout agrave fait envisageables (peu de contraintes de vitesse et de tensions de deacutechets)

4 Conclusion

Nous avons preacutefeacutereacute ne pas utiliser les cartes Escap car les moteurs ne renvoient pas une position sous forme drsquoimpulsion mais une vitesse Etant donneacute que nous avions envisageacute un repeacuterage par odomeacutetrie cela compliquait consideacuterablement la tache

Toutefois il faut savoir que cette solution a eacuteteacute testeacutee et fonctionne tregraves bien (bonne preacutecision bonne dynamique) ainsi dans le cas ougrave le repeacuterage ne se fait pas par odomeacutetrie mais des balises exteacuterieures sachez que cette solution est tregraves pratique agrave utiliser En effet pour imposer une vitesse il suffit au microcontrocircleur drsquoappliquer sur un port un mot binaire correspondant agrave la vitesse voulue hellip et crsquoest tout La carte Escap se charge du reste

5 Carte drsquoasservissement numeacuterique laquo artisanale raquo

La carte reacutealiseacutee baseacutee sur un microcontrocircleur PIC 16F877A srsquoest aveacutereacutee fonctionnelle mais les tests drsquoalgorithmes drsquoasservissement nrsquoont pas eacuteteacute effectueacutesEn effet lrsquoutilisation de cette solution neacutecessite un microcontrocircleur deacutedieacute agrave lrsquoasservissement capable de communiquer via un protocole agrave deacutefinir avec la laquo carte megravere raquo (centralisant les retours des autres capteurs du robot et agissant sur les diffeacuterents actionneurs en fonction de la strateacutegie)Or afin de limiter le nombre de microcontrocircleurs sur le robot et du fait que lrsquoon dispose drsquoun budget suffisant nous avons deacutecideacute drsquoessayer drsquoutiliser des composants speacuteciaux reacutealisant lrsquoasservissement

Le systegraveme se deacutecompose en

- Un microcontrocircleur pour appliquer la PWM asservir et commander- Une carte de puissance pour chaque moteur baseacutee sur un LMD18200- Une carte compteur drsquoimpulsions pour les codeurs

Afin de favoriser lrsquointeractiviteacute et les reacuteglages jrsquoai ajouteacute une carte afficheur LCD avec 6 boutons sur la carte microcontrocircleur

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 31: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

c Asservissement PI

Le correcteur inteacutegral sert principalement agrave supprimer lerreur statique Lideacutee principale est de charger ou inteacutegrer lerreur depuis le deacutebut et dajouter cette erreur agrave la consigne jusquagrave ce quelle devienne nulle Lorsque cette erreur est nulle le terme inteacutegral se stabilise et il compense parfaitement lerreur entre la consigne et la vitesse reacuteelle Deacutemonstration en image

On voit cette fois-ci que le terme inteacutegral a bien fonctionneacute et que lerreur statique est nulle On constate aussi que plus le gain Ki est grand plus le systegraveme converge vite En revanche plus Ki est grand plus le systegraveme oscille et plus le deacutepassement est grand Sur des asservissements en position le terme deacuteriveacute permet de diminuer le deacutepassement et les oscillations Nous allons voir que dans notre cas nous avons quelques problegravemes

d Asservissement PID ou agrave avance de phase

On a donc rajouteacute le terme deacuteriveacute comme tout bon livre dautomatique le preacuteconise et voici les reacutesultats

Cette fois ci jai choisi de repreacutesenter la tension appliqueacutee au moteur (U) le problegraveme est bien plus flagrant ici Vous voyez que lorsque lon ajoute le terme deacuteriveacute la commande est extrecircmement bruiteacutee En reacutealiteacute on somme agrave la commande la deacuteriveacutee de la vitesse reacuteelle que lon multiplie par un gain Kd La deacuteriveacutee dune vitesse est une acceacuteleacuteration cela signifie que lon amplifie tous les bruits dacceacuteleacuteration et en plus on les multiplient par un gain Kd Donc rajoute du bruit amplifieacute dans la commande Alors pourquoi mettent t-ils ce terme deacuteriveacutee dans les livres Simplement parce que ce bruit est typique des asservissement en vitesse Sur des asservissements en position ce problegraveme est moins freacutequent car la deacuteriveacutee de la position est la vitesse

Ici le problegraveme eacutetait visible parce que nous avons reacutealiseacute toutes ces courbes sur un systegraveme reacuteel Si nous avions simuleacute ces reacutesultats lacceacuteleacuteration naurait pas eacuteteacute bruiteacutee et les courbes auraient eacuteteacute parfaites Pour impleacutementer ce PID sur notre robot il a fallu programmer en numeacuterique une deacuteriveacutee et une inteacutegrale

e PID numeacuterique et reacuteglage

Notre premier problegraveme est de programmer le terme inteacutegral Il existe une meacutethode qui consiste agrave estimer la surface entre deux eacutechantillons mais dans notre cas nous avons des problegravemes dus aux bruits et agrave la freacutequence deacutechantillonnage Alors il faut sommer toutes les erreurs depuis de deacutebut

Notre second problegraveme est de programmer le terme deacuteriveacute La meacutethode ici est de calculer la pente entre deux eacutechantillons de e Theacuteoriquement cela revient agrave faire le calcul suivant

Avec la peacuteriode deacutechantillonnage Pour faire un asservissement numeacuterique il faut impeacuterativement avoir une peacuteriode fixe Pour gagner du temps de calcul geacuteneacuteralement on inteacutegre directement dans le gain Kd

Voici un lalgorithme exemple

Ti = 0 Initialise le terme inteacutegral

for ( i=1 i lt= Nb_cycles i++ )

Init_timers (1) Initialise le timer agrave notre peacuteriode 1 ms

Y = Codeur () Stoque la valeur du codeur dans Y Rst_codeur () Remet le codeur agrave zeacutero Ud = Consigne () Mise agrave jour de la consigne e_old=e Stoque e(t-1) e = Ud - Y Calcul de lerreur Ti = Ti + e Calcul de linteacutegral Calcul du PID U = Kp e Terme proportionnel

+ Ki Ti Terme inteacutegral + Kd ( e - e_old ) Terme deacuteriveacute Moteur (U) On applique la consigne

while ( end_timer() ) On attend la fin de la peacuteriode

Pour le reacuteglage des gains Kp Ki et Kd il existe diffeacuterentes meacutethodes Ici nous lavons fait de maniegravere empirique et le reacutesultats est plutocirct bon Linconveacutenient de ces meacutethodes est quelles demandent un modegravele du systegraveme ce qui est geacuteneacuteralement dur agrave produire Il existe

aussi des composants programmables qui permettent de faire directement lasservissement numeacuterique (HCTL 1100 LM629) Ils sont exactement baseacutes sur la meacutethode preacutesenteacutee ici

Pour ce qui est du reacuteglage des correcteurs lrsquooptimal est drsquoutiliser la meacutethode de lrsquooptimum dissymeacutetrique une fois que lrsquoon agrave reacutealiseacute le modegravele du systegraveme La plus part des eacutecoles ne reacutealisent pas ce modegravele et ce limite donc agrave une correction empirique en reacutealisant des tests ou en utilisant la meacutethode Ziegler-Nichols agrave partir de la reacuteponse agrave un eacutechelon de tension

Par la suite nous rappellerons les meacutethodes de Ziegler-Nichols et de lrsquooptimum dissymeacutetrique

f Les meacutethodes de Ziegler-Nichols

Ces meacutethodes fournissent des reacuteglages pour des correcteurs de type PID (pouvant ne comporter quune action Proportionnelle une action Proportionnelle et une action Inteacutegrale ou les 3 actions simultaneacutement) dont la structure est la suivante

bull MEacuteTHODE DE ZIEGLER NICHOLS TEMPORELLE

Elle est adapteacutee aux systegravemes stables en boucle ouverte qui ont une reacuteponse apeacuteriodique La reacuteponse agrave un eacutechelon unitaire du systegraveme physique doit ecirctre enregistreacutee Diffeacuterentes caracteacuteristiques de la reacuteponse obtenue sont mesureacutees

Le modegravele approcheacute utiliseacutee par Ziegler Nichols comporte une constante de temps et un retard pur ou bien un retard pur et un inteacutegrateur

Si le systegraveme physique comporte un inteacutegrateur les mesures de a et de L demeurent disponibles sur le deacutebut de la reacuteponse

Les reacuteglages suggeacutereacutes par la meacutethode temporelle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 1a - -correcteur PI 09a 3L -

correcteur PID 12a 2L L2Concernant le raffinement des reacuteglages augmenter Kp ou diminuer Ti augment les

oscillations de la sortie

bull MEacuteTHODE DE ZIEGLER NICHOLS FREacuteQUENTIELLE

Cette meacutethode convient particuliegraverement bien aux systegravemes instables en boucle ouverte pour lesquels la meacutethode temporelle nest pas envisageable Lexpeacuterimentation se fait sur le systegraveme boucleacute avec un simple gain proportionnel qui doit ecirctre stable Le principe est de modifier la valeur du gain par essai-erreur jusquagrave atteindre la limite de stabiliteacute (pheacutenomegravene de pompage) Il reste agrave relever le gain limite K0 obtenu et agrave mesurer la peacuteriode T0 des oscillations de la reacuteponse obtenue

Les reacuteglages suggeacutereacutes par la meacutethode freacutequentielle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 05 K0 - -correcteur PI 045 K0 08 T0 -

correcteur PID 06 K0 05 T0 0125 T0

A la page Internet suivante vous trouverez un simulateur de cette meacutethode

httpwww-hadocensieginpgfrhadocateliersreglageEmpCorrReglEmpCorrDroithtml

g Meacutethode de lrsquooptimum dyssimeacutetique (voir poly MC06 Chap 5 et 8)

Cette meacutethode srsquoapplique une fois le modegravele reacutealiseacute et mis sous la forme drsquoun second ordre

et on obtient le correcteur PI

pour une surtension deacutesireacutee QdB

Q = 10^(QdB20)λ= radic(Qsup2(Qsup2-1))Δφ = arcos (1 λ)α= ((1+sin(Δφ))cos(Δφ))sup2ωN= ωQαω0= ωQradicαKP= ω0 λ KQ

4 Les microcontrocircleurs

a Avant propos

Cette fiche se veut ecirctre sous la forme dun projet Un projet non termineacute ougrave chacun peut apporter sa contribution (ameacuteliorations adaptations corrections etc)De ce fait ces pages sont ameneacutees agrave eacutevoluer et vous-mecircme pourrez participer agrave leur eacutevolution

Pourquoi avoir choisit un tel mode de travail Tout simplement parce que le sujet est vaste et que des variations sont possibles suivant lutilisation quen feront les diffeacuterentes personnes

Le but de ce projet est de reacutealiser une double asservissement de vitesse (type PID) de deux moteurs sur un seul PIC (type 16F877) Lutiliteacute majeure eacutetant de faire rouler un robot bien droit et agrave la bonne vitesse A quoi ccedila sert plus preacuteciseacutement

Avec un seul PIC ce projet permet aux roboticiens amateurs et chevronneacutes de reacutealiser facilement leur asservissement de vitesse de moteurs agrave courant continu (en geacuteneacuteral les moteurs de propulsions de leur robot mais ccedila peut ecirctre bien sucircr dautres moteurs) La commande de lasservissement pourra se faire agrave terme en liaison seacuterie (deacutejagrave fait) I2C ou par bus ISA

b Avantages

Il existe bien sucircr dautres systegravemes qui gegraverent un asservissement de vitesses Des systegravemes professionnels existent comme les LM629 Ils ont linconveacutenient decirctre cher (et ce pour un seul moteur) et relativement complexes

Pourquoi chercher un fusil pour chasser des moustiques Le double asservissement sur PIC vous coucircte le prix dun PIC soit environ 15Euro pour un 16F877 actuellement et ce pour 2 moteurs Ce double asservissement se veut relativement simple De plus vous pouvez en modifier le programme et ladapter agrave vos besoins

c Inconveacutenients

Les personnes qui auront les moyens preacutefeacutererons opter pour un systegraveme professionnel certainement pour des raisons de fiabiliteacute mais cest agrave leurs risques et peacuterils -)La puissance du PIC eacutetant limiteacutee il ne peut pas reacutealiser des PID trop rapides ou trop complexes Il y a en particulier une limitation sur le nombre dimpulsions par seconde quil est capable de geacuterer

Le langage utiliseacute eacutetant le C il faut une licence du logiciel pour pouvoir modifier et recompiler le code source c Mais le projet se veut geacuteneacuterique Une version donneacutee pourra ecirctre utiliseacute sans recompilation en respectant quelques contraintes

d Asservissement

En fait on pourrait imaginer quil suffirait denvoyer au moteur une puissance constante pour quil tourne tout le temps agrave la mecircme vitesse Ce nest pas vrai du tout Tout dabord 2 moteurs dune mecircme seacuterie nauront pas forceacutement le mecircme comportement Ensuite parce que les niveaux de tension ou dautre diffeacuterences eacutelectriques peuvent jouer Enfin parce que des influences exteacuterieures (obstacles frein meacutecanique du robot) peuvent jouer

Du coup il est tregraves difficile de faire aller un moteur agrave la vitesse voulue Parfois ce nest pas gecircnant mais ccedila peut lecirctre Un exemple classique est le robot avec 2 roues motrices type char une configuration qui est tregraves courante Mais pour que ce robot aille droit il faut que les 2 moteurs aillent exactement agrave la mecircme vitesse

La solution est de faire un asservissement Cest a dire moduler dynamiquement la puissance envoyeacute aux moteurs suivant leur vitesse mesureacutee afin dadapter celle-ci agrave ce qui est deacutesireacuteeCela implique un eacuteleacutement tregraves important pour asservir il faut un capteur de vitesse du moteur En geacuteneacuteral il sagit dun compte-tour qui enverra N impulsions (ou pas) par tour de moteur Ensuite un programme va calculer en fonction de la vitesse mesureacutee du moteur la puissance agrave utiliser

Les asservissements sont constamment en train de chercher leacutequilibre Il faut bien comprendre quils mettent un certain temps agrave latteindre et ce dernier peut aussi ecirctre instable si lasservissement est mal reacutegleacute

Lasservissement quon va utiliser ici est un classique PIDou plus preacuteciseacutement un PI car pour des raisons de vitesses de traitement la composante deacuteriveacutee est laisseacutee de coteacute (mais rien de difficile agrave rajouter)

Le PID ou Proportionnel Inteacutegrale Deacuteriveacute est une meacutethode de calcul dasservissement

Soit Kp Ki et Kd les coefficients proportionnels inteacutegrale et deacuteriveacuteSoit e lerreur Vitesse mesureacutee moins vitesse demandeacuteeSoit Ti le terme inteacutegral dabord initialiseacute agrave 0

Consigne a appliquer (PWM) = Kp e + (1Ki) (Ti += e) + Kd (e - e(t-1))

On pourrait dire des pages et des pages sur le PID et ce nest pas mon but ici Merci de vous reporter au lien ci-dessous

Pour plus de deacutetails sur le PID la page de lANCR httpwwwancrorgfichtechactionpidindexhtmChez les Fribottes la Simulation de Jean-Claude httpwwwwikifreefrWiKiFriindexphpSimulateur20de20PID

e Le pic

Le PIC est un petit microcontrocircleur assez bon marche et simple a programmer comme a utiliser

La aussi je vais pas rentrer dans les deacutetails vous pouvez vous reporter agrave la bdtech du site Fribotte et en particulier aux cours de Bigonoff

Le PIC est ici programmeacute en C voir la page Fribotte ici Lutilisation du langage C permet dalleacuteger consideacuterablement le deacuteveloppement dune application compliqueacutee

2 Module AVR

httpwwwenseirbfr~matzfravrphp

Tregraves peu de renseignement sur ce module sinon ces informations drsquoun eacutetudiant de lrsquoEnseirb

Depuis plusieurs anneacutees je participe agrave la coupe de robotique E=M6 dont lobjectif pour chaque eacutequipe est de fabriquer un robot autonome devant se conformer agrave un regraveglement Pour plus dinfos vous pouvez vous rendre sur le site de mon eacutequipe Microb Technology ou bien sur le site de Planegravete Sciences lorganisme beacuteneacutevole qui organise cette compeacutetition

Jai deacutecouvert en 2001 les microcontrocircleurs Atmel AVR auxquels je me suis beaucoup attacheacute dune part parce quils sont assez performants pour des microcontrocircleurs 8 bits mais aussi et surtout car le fameux compilateur libre GCC est capable de compiler du code C pour ces petites becirctes Il existe de surcroicirct plusieurs outils libres permettant de les programmer de les simuler etc

Le but de ce projet est donc de deacutevelopper des modules servant dinterface geacuteneacuterique avec le hardware du microcontrocircleur quel que soit la version (par exemple les UART inclus dans les AVR AtMega sont diffeacuterents de ceux preacutesents dans les petits AVR) et de deacutevelopper des modules utiles pour certaines utilisations usuelles et pas seulement pour la coupe E=M6 (codage de hamming asservissement chiffrement etc)

Vous pouvez contacter leacutequipe de deacuteveloppement agrave avr-devdroids-corporg Pour le moment aucune release na eacuteteacute faite mais le travail est deacutejagrave bien avanceacute Chaque soir un screenshot du CVS est reacutealiseacute Il peut ne pas compiler mais normalement ccedila devrait fonctionner Voici le lien

3 Modules drsquoasservissement analogique laquo Escap raquo

Nous avons essayeacute de reacutecupeacuterer les cartes de commande Escap pour moteurs Escap qui avaient eacuteteacute utiliseacutees en 96 et 98 avec succegraves

Nous les avons monteacutes sur une base roulante qui pesait en tout 74 kgVoici grosso-modo leurs avantages et leurs inconveacutenients (pour les notices techniques voir le rapport 96 ou 98)

a Avantages

Cette carte inclut directement un asservissement avec correcteur PI la commande de puissance les ponts en H

Elle est tregraves facile agrave utiliser Elle est speacutecialement conccedilue pour les moteurs Escap que nous avons donc

parfaitement adapteacutee

b Inconveacutenients

Les moteurs ne fonctionnent correctement que sous 24v Les cartes et les moteurs semblent assez gourment Les cartes nantis de gros radiateurs sont relativement encombrantes Les tachymegravetres monteacutes sur les moteurs ne donnent pas une indication de position

mais de vitesse (qui plus est en analogique)

Nous avons preacutefeacutereacute refaire la partie commande car celle de 1996 souffrait de quelques deacutefauts (cf rapport 1996)

La conversion numeacuterique analogique

Pour reacutealiser la conversion numeacuterique analogique nous avons choisit un pont agrave reacutesistance R-2R

Nous pouvons consideacuterer que chaque bit est relieacute agrave un geacuteneacuterateur ideacuteal de tension (qui deacutelivre 0v ou 5v) Par conseacutequent la reacutesistance eacutequivalente quelque soit lrsquoeacutetat des bits et quelques soit le nombre de bits vue entre la sortie et la masse sera eacutegal agrave R

La tension Vs en fonction de lrsquoeacutetat des bits sera

Ce type de CAN eacutetant tregraves classique nous nrsquoindiquerons pas les deacutemonstrations toutefois vous pourrez les trouver tregraves facilement sur Internet ou sur le Cd-rom drsquoannexes joint au dossier

Le montage de Thevenin eacutequivalent est donc

Nous avons jugeacute qursquoune discreacutetisation sur 8 bits eacutetait un peu superflu crsquoest pourquoi nous nous contenterons de 4 bits (ce qui repreacutesentent quand mecircme 16 niveaux de vitesse)

bull Lrsquoadaptation du niveau de tension

Nous avons agrave la sortie du CAN une tension qui srsquoeacutetend de 0 agrave 5v or la commande des cartes Escap ce fait entre -5v et +5v

On peut voir cette adaptation comme lrsquoajout drsquoun offset de -25v et une amplification de gain 2

Voici le montage reacutealisant cette conversion

M1 est un montage suiveur qui lsquorecopiersquo la tension aux bornes de P1 mais sous une impeacutedance constante et eacutegale agrave 4R En 1996 lrsquoeacutequipe avait brancheacute P1 directement sur M3 mais cela a pour inconveacutenient de faire varier agrave la fois lrsquooffset et la penteLe potentiomegravetre P1 permet drsquoajuster lrsquooffset (permet par conseacutequent de reacutegler lrsquoarrecirct complet de moteur) (La valeur theacuteorique de lrsquooffset est 5V (cf formule en M3))

M2 est aussi un montage suiveur Le potentiomegravetre P2 permet drsquoajuster la pente (qui doit avoir un coefficient directeur de 2) Comme M2 est connecteacute au CAN dont la reacutesistance interne est de R P2 doit ecirctre a peut precirct eacutegal agrave R de la sorte la branche aura une reacutesistance eacutequivalente de 2R

M3 Sommateur (Vs = - 2 (Ve + Voffset))

Qursquoelle valeur choisir pour R

Theacuteoriquement on peut choisir nrsquoimporte quelle valeur pour R mais en pratique si R est trop petite une intensiteacute importante serait consommeacutee sans raison et si R est trop grande la forte impeacutedance du montage le rendra tregraves sensible aux parasites (secteur moteurshellip)Ce montage a eacuteteacute testeacute et fonctionne correctement pour R=5k les amplificateurs opeacuterationnels utiliseacutes sont des LM324 mais drsquoautres seraient tout agrave fait envisageables (peu de contraintes de vitesse et de tensions de deacutechets)

4 Conclusion

Nous avons preacutefeacutereacute ne pas utiliser les cartes Escap car les moteurs ne renvoient pas une position sous forme drsquoimpulsion mais une vitesse Etant donneacute que nous avions envisageacute un repeacuterage par odomeacutetrie cela compliquait consideacuterablement la tache

Toutefois il faut savoir que cette solution a eacuteteacute testeacutee et fonctionne tregraves bien (bonne preacutecision bonne dynamique) ainsi dans le cas ougrave le repeacuterage ne se fait pas par odomeacutetrie mais des balises exteacuterieures sachez que cette solution est tregraves pratique agrave utiliser En effet pour imposer une vitesse il suffit au microcontrocircleur drsquoappliquer sur un port un mot binaire correspondant agrave la vitesse voulue hellip et crsquoest tout La carte Escap se charge du reste

5 Carte drsquoasservissement numeacuterique laquo artisanale raquo

La carte reacutealiseacutee baseacutee sur un microcontrocircleur PIC 16F877A srsquoest aveacutereacutee fonctionnelle mais les tests drsquoalgorithmes drsquoasservissement nrsquoont pas eacuteteacute effectueacutesEn effet lrsquoutilisation de cette solution neacutecessite un microcontrocircleur deacutedieacute agrave lrsquoasservissement capable de communiquer via un protocole agrave deacutefinir avec la laquo carte megravere raquo (centralisant les retours des autres capteurs du robot et agissant sur les diffeacuterents actionneurs en fonction de la strateacutegie)Or afin de limiter le nombre de microcontrocircleurs sur le robot et du fait que lrsquoon dispose drsquoun budget suffisant nous avons deacutecideacute drsquoessayer drsquoutiliser des composants speacuteciaux reacutealisant lrsquoasservissement

Le systegraveme se deacutecompose en

- Un microcontrocircleur pour appliquer la PWM asservir et commander- Une carte de puissance pour chaque moteur baseacutee sur un LMD18200- Une carte compteur drsquoimpulsions pour les codeurs

Afin de favoriser lrsquointeractiviteacute et les reacuteglages jrsquoai ajouteacute une carte afficheur LCD avec 6 boutons sur la carte microcontrocircleur

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 32: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

d Asservissement PID ou agrave avance de phase

On a donc rajouteacute le terme deacuteriveacute comme tout bon livre dautomatique le preacuteconise et voici les reacutesultats

Cette fois ci jai choisi de repreacutesenter la tension appliqueacutee au moteur (U) le problegraveme est bien plus flagrant ici Vous voyez que lorsque lon ajoute le terme deacuteriveacute la commande est extrecircmement bruiteacutee En reacutealiteacute on somme agrave la commande la deacuteriveacutee de la vitesse reacuteelle que lon multiplie par un gain Kd La deacuteriveacutee dune vitesse est une acceacuteleacuteration cela signifie que lon amplifie tous les bruits dacceacuteleacuteration et en plus on les multiplient par un gain Kd Donc rajoute du bruit amplifieacute dans la commande Alors pourquoi mettent t-ils ce terme deacuteriveacutee dans les livres Simplement parce que ce bruit est typique des asservissement en vitesse Sur des asservissements en position ce problegraveme est moins freacutequent car la deacuteriveacutee de la position est la vitesse

Ici le problegraveme eacutetait visible parce que nous avons reacutealiseacute toutes ces courbes sur un systegraveme reacuteel Si nous avions simuleacute ces reacutesultats lacceacuteleacuteration naurait pas eacuteteacute bruiteacutee et les courbes auraient eacuteteacute parfaites Pour impleacutementer ce PID sur notre robot il a fallu programmer en numeacuterique une deacuteriveacutee et une inteacutegrale

e PID numeacuterique et reacuteglage

Notre premier problegraveme est de programmer le terme inteacutegral Il existe une meacutethode qui consiste agrave estimer la surface entre deux eacutechantillons mais dans notre cas nous avons des problegravemes dus aux bruits et agrave la freacutequence deacutechantillonnage Alors il faut sommer toutes les erreurs depuis de deacutebut

Notre second problegraveme est de programmer le terme deacuteriveacute La meacutethode ici est de calculer la pente entre deux eacutechantillons de e Theacuteoriquement cela revient agrave faire le calcul suivant

Avec la peacuteriode deacutechantillonnage Pour faire un asservissement numeacuterique il faut impeacuterativement avoir une peacuteriode fixe Pour gagner du temps de calcul geacuteneacuteralement on inteacutegre directement dans le gain Kd

Voici un lalgorithme exemple

Ti = 0 Initialise le terme inteacutegral

for ( i=1 i lt= Nb_cycles i++ )

Init_timers (1) Initialise le timer agrave notre peacuteriode 1 ms

Y = Codeur () Stoque la valeur du codeur dans Y Rst_codeur () Remet le codeur agrave zeacutero Ud = Consigne () Mise agrave jour de la consigne e_old=e Stoque e(t-1) e = Ud - Y Calcul de lerreur Ti = Ti + e Calcul de linteacutegral Calcul du PID U = Kp e Terme proportionnel

+ Ki Ti Terme inteacutegral + Kd ( e - e_old ) Terme deacuteriveacute Moteur (U) On applique la consigne

while ( end_timer() ) On attend la fin de la peacuteriode

Pour le reacuteglage des gains Kp Ki et Kd il existe diffeacuterentes meacutethodes Ici nous lavons fait de maniegravere empirique et le reacutesultats est plutocirct bon Linconveacutenient de ces meacutethodes est quelles demandent un modegravele du systegraveme ce qui est geacuteneacuteralement dur agrave produire Il existe

aussi des composants programmables qui permettent de faire directement lasservissement numeacuterique (HCTL 1100 LM629) Ils sont exactement baseacutes sur la meacutethode preacutesenteacutee ici

Pour ce qui est du reacuteglage des correcteurs lrsquooptimal est drsquoutiliser la meacutethode de lrsquooptimum dissymeacutetrique une fois que lrsquoon agrave reacutealiseacute le modegravele du systegraveme La plus part des eacutecoles ne reacutealisent pas ce modegravele et ce limite donc agrave une correction empirique en reacutealisant des tests ou en utilisant la meacutethode Ziegler-Nichols agrave partir de la reacuteponse agrave un eacutechelon de tension

Par la suite nous rappellerons les meacutethodes de Ziegler-Nichols et de lrsquooptimum dissymeacutetrique

f Les meacutethodes de Ziegler-Nichols

Ces meacutethodes fournissent des reacuteglages pour des correcteurs de type PID (pouvant ne comporter quune action Proportionnelle une action Proportionnelle et une action Inteacutegrale ou les 3 actions simultaneacutement) dont la structure est la suivante

bull MEacuteTHODE DE ZIEGLER NICHOLS TEMPORELLE

Elle est adapteacutee aux systegravemes stables en boucle ouverte qui ont une reacuteponse apeacuteriodique La reacuteponse agrave un eacutechelon unitaire du systegraveme physique doit ecirctre enregistreacutee Diffeacuterentes caracteacuteristiques de la reacuteponse obtenue sont mesureacutees

Le modegravele approcheacute utiliseacutee par Ziegler Nichols comporte une constante de temps et un retard pur ou bien un retard pur et un inteacutegrateur

Si le systegraveme physique comporte un inteacutegrateur les mesures de a et de L demeurent disponibles sur le deacutebut de la reacuteponse

Les reacuteglages suggeacutereacutes par la meacutethode temporelle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 1a - -correcteur PI 09a 3L -

correcteur PID 12a 2L L2Concernant le raffinement des reacuteglages augmenter Kp ou diminuer Ti augment les

oscillations de la sortie

bull MEacuteTHODE DE ZIEGLER NICHOLS FREacuteQUENTIELLE

Cette meacutethode convient particuliegraverement bien aux systegravemes instables en boucle ouverte pour lesquels la meacutethode temporelle nest pas envisageable Lexpeacuterimentation se fait sur le systegraveme boucleacute avec un simple gain proportionnel qui doit ecirctre stable Le principe est de modifier la valeur du gain par essai-erreur jusquagrave atteindre la limite de stabiliteacute (pheacutenomegravene de pompage) Il reste agrave relever le gain limite K0 obtenu et agrave mesurer la peacuteriode T0 des oscillations de la reacuteponse obtenue

Les reacuteglages suggeacutereacutes par la meacutethode freacutequentielle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 05 K0 - -correcteur PI 045 K0 08 T0 -

correcteur PID 06 K0 05 T0 0125 T0

A la page Internet suivante vous trouverez un simulateur de cette meacutethode

httpwww-hadocensieginpgfrhadocateliersreglageEmpCorrReglEmpCorrDroithtml

g Meacutethode de lrsquooptimum dyssimeacutetique (voir poly MC06 Chap 5 et 8)

Cette meacutethode srsquoapplique une fois le modegravele reacutealiseacute et mis sous la forme drsquoun second ordre

et on obtient le correcteur PI

pour une surtension deacutesireacutee QdB

Q = 10^(QdB20)λ= radic(Qsup2(Qsup2-1))Δφ = arcos (1 λ)α= ((1+sin(Δφ))cos(Δφ))sup2ωN= ωQαω0= ωQradicαKP= ω0 λ KQ

4 Les microcontrocircleurs

a Avant propos

Cette fiche se veut ecirctre sous la forme dun projet Un projet non termineacute ougrave chacun peut apporter sa contribution (ameacuteliorations adaptations corrections etc)De ce fait ces pages sont ameneacutees agrave eacutevoluer et vous-mecircme pourrez participer agrave leur eacutevolution

Pourquoi avoir choisit un tel mode de travail Tout simplement parce que le sujet est vaste et que des variations sont possibles suivant lutilisation quen feront les diffeacuterentes personnes

Le but de ce projet est de reacutealiser une double asservissement de vitesse (type PID) de deux moteurs sur un seul PIC (type 16F877) Lutiliteacute majeure eacutetant de faire rouler un robot bien droit et agrave la bonne vitesse A quoi ccedila sert plus preacuteciseacutement

Avec un seul PIC ce projet permet aux roboticiens amateurs et chevronneacutes de reacutealiser facilement leur asservissement de vitesse de moteurs agrave courant continu (en geacuteneacuteral les moteurs de propulsions de leur robot mais ccedila peut ecirctre bien sucircr dautres moteurs) La commande de lasservissement pourra se faire agrave terme en liaison seacuterie (deacutejagrave fait) I2C ou par bus ISA

b Avantages

Il existe bien sucircr dautres systegravemes qui gegraverent un asservissement de vitesses Des systegravemes professionnels existent comme les LM629 Ils ont linconveacutenient decirctre cher (et ce pour un seul moteur) et relativement complexes

Pourquoi chercher un fusil pour chasser des moustiques Le double asservissement sur PIC vous coucircte le prix dun PIC soit environ 15Euro pour un 16F877 actuellement et ce pour 2 moteurs Ce double asservissement se veut relativement simple De plus vous pouvez en modifier le programme et ladapter agrave vos besoins

c Inconveacutenients

Les personnes qui auront les moyens preacutefeacutererons opter pour un systegraveme professionnel certainement pour des raisons de fiabiliteacute mais cest agrave leurs risques et peacuterils -)La puissance du PIC eacutetant limiteacutee il ne peut pas reacutealiser des PID trop rapides ou trop complexes Il y a en particulier une limitation sur le nombre dimpulsions par seconde quil est capable de geacuterer

Le langage utiliseacute eacutetant le C il faut une licence du logiciel pour pouvoir modifier et recompiler le code source c Mais le projet se veut geacuteneacuterique Une version donneacutee pourra ecirctre utiliseacute sans recompilation en respectant quelques contraintes

d Asservissement

En fait on pourrait imaginer quil suffirait denvoyer au moteur une puissance constante pour quil tourne tout le temps agrave la mecircme vitesse Ce nest pas vrai du tout Tout dabord 2 moteurs dune mecircme seacuterie nauront pas forceacutement le mecircme comportement Ensuite parce que les niveaux de tension ou dautre diffeacuterences eacutelectriques peuvent jouer Enfin parce que des influences exteacuterieures (obstacles frein meacutecanique du robot) peuvent jouer

Du coup il est tregraves difficile de faire aller un moteur agrave la vitesse voulue Parfois ce nest pas gecircnant mais ccedila peut lecirctre Un exemple classique est le robot avec 2 roues motrices type char une configuration qui est tregraves courante Mais pour que ce robot aille droit il faut que les 2 moteurs aillent exactement agrave la mecircme vitesse

La solution est de faire un asservissement Cest a dire moduler dynamiquement la puissance envoyeacute aux moteurs suivant leur vitesse mesureacutee afin dadapter celle-ci agrave ce qui est deacutesireacuteeCela implique un eacuteleacutement tregraves important pour asservir il faut un capteur de vitesse du moteur En geacuteneacuteral il sagit dun compte-tour qui enverra N impulsions (ou pas) par tour de moteur Ensuite un programme va calculer en fonction de la vitesse mesureacutee du moteur la puissance agrave utiliser

Les asservissements sont constamment en train de chercher leacutequilibre Il faut bien comprendre quils mettent un certain temps agrave latteindre et ce dernier peut aussi ecirctre instable si lasservissement est mal reacutegleacute

Lasservissement quon va utiliser ici est un classique PIDou plus preacuteciseacutement un PI car pour des raisons de vitesses de traitement la composante deacuteriveacutee est laisseacutee de coteacute (mais rien de difficile agrave rajouter)

Le PID ou Proportionnel Inteacutegrale Deacuteriveacute est une meacutethode de calcul dasservissement

Soit Kp Ki et Kd les coefficients proportionnels inteacutegrale et deacuteriveacuteSoit e lerreur Vitesse mesureacutee moins vitesse demandeacuteeSoit Ti le terme inteacutegral dabord initialiseacute agrave 0

Consigne a appliquer (PWM) = Kp e + (1Ki) (Ti += e) + Kd (e - e(t-1))

On pourrait dire des pages et des pages sur le PID et ce nest pas mon but ici Merci de vous reporter au lien ci-dessous

Pour plus de deacutetails sur le PID la page de lANCR httpwwwancrorgfichtechactionpidindexhtmChez les Fribottes la Simulation de Jean-Claude httpwwwwikifreefrWiKiFriindexphpSimulateur20de20PID

e Le pic

Le PIC est un petit microcontrocircleur assez bon marche et simple a programmer comme a utiliser

La aussi je vais pas rentrer dans les deacutetails vous pouvez vous reporter agrave la bdtech du site Fribotte et en particulier aux cours de Bigonoff

Le PIC est ici programmeacute en C voir la page Fribotte ici Lutilisation du langage C permet dalleacuteger consideacuterablement le deacuteveloppement dune application compliqueacutee

2 Module AVR

httpwwwenseirbfr~matzfravrphp

Tregraves peu de renseignement sur ce module sinon ces informations drsquoun eacutetudiant de lrsquoEnseirb

Depuis plusieurs anneacutees je participe agrave la coupe de robotique E=M6 dont lobjectif pour chaque eacutequipe est de fabriquer un robot autonome devant se conformer agrave un regraveglement Pour plus dinfos vous pouvez vous rendre sur le site de mon eacutequipe Microb Technology ou bien sur le site de Planegravete Sciences lorganisme beacuteneacutevole qui organise cette compeacutetition

Jai deacutecouvert en 2001 les microcontrocircleurs Atmel AVR auxquels je me suis beaucoup attacheacute dune part parce quils sont assez performants pour des microcontrocircleurs 8 bits mais aussi et surtout car le fameux compilateur libre GCC est capable de compiler du code C pour ces petites becirctes Il existe de surcroicirct plusieurs outils libres permettant de les programmer de les simuler etc

Le but de ce projet est donc de deacutevelopper des modules servant dinterface geacuteneacuterique avec le hardware du microcontrocircleur quel que soit la version (par exemple les UART inclus dans les AVR AtMega sont diffeacuterents de ceux preacutesents dans les petits AVR) et de deacutevelopper des modules utiles pour certaines utilisations usuelles et pas seulement pour la coupe E=M6 (codage de hamming asservissement chiffrement etc)

Vous pouvez contacter leacutequipe de deacuteveloppement agrave avr-devdroids-corporg Pour le moment aucune release na eacuteteacute faite mais le travail est deacutejagrave bien avanceacute Chaque soir un screenshot du CVS est reacutealiseacute Il peut ne pas compiler mais normalement ccedila devrait fonctionner Voici le lien

3 Modules drsquoasservissement analogique laquo Escap raquo

Nous avons essayeacute de reacutecupeacuterer les cartes de commande Escap pour moteurs Escap qui avaient eacuteteacute utiliseacutees en 96 et 98 avec succegraves

Nous les avons monteacutes sur une base roulante qui pesait en tout 74 kgVoici grosso-modo leurs avantages et leurs inconveacutenients (pour les notices techniques voir le rapport 96 ou 98)

a Avantages

Cette carte inclut directement un asservissement avec correcteur PI la commande de puissance les ponts en H

Elle est tregraves facile agrave utiliser Elle est speacutecialement conccedilue pour les moteurs Escap que nous avons donc

parfaitement adapteacutee

b Inconveacutenients

Les moteurs ne fonctionnent correctement que sous 24v Les cartes et les moteurs semblent assez gourment Les cartes nantis de gros radiateurs sont relativement encombrantes Les tachymegravetres monteacutes sur les moteurs ne donnent pas une indication de position

mais de vitesse (qui plus est en analogique)

Nous avons preacutefeacutereacute refaire la partie commande car celle de 1996 souffrait de quelques deacutefauts (cf rapport 1996)

La conversion numeacuterique analogique

Pour reacutealiser la conversion numeacuterique analogique nous avons choisit un pont agrave reacutesistance R-2R

Nous pouvons consideacuterer que chaque bit est relieacute agrave un geacuteneacuterateur ideacuteal de tension (qui deacutelivre 0v ou 5v) Par conseacutequent la reacutesistance eacutequivalente quelque soit lrsquoeacutetat des bits et quelques soit le nombre de bits vue entre la sortie et la masse sera eacutegal agrave R

La tension Vs en fonction de lrsquoeacutetat des bits sera

Ce type de CAN eacutetant tregraves classique nous nrsquoindiquerons pas les deacutemonstrations toutefois vous pourrez les trouver tregraves facilement sur Internet ou sur le Cd-rom drsquoannexes joint au dossier

Le montage de Thevenin eacutequivalent est donc

Nous avons jugeacute qursquoune discreacutetisation sur 8 bits eacutetait un peu superflu crsquoest pourquoi nous nous contenterons de 4 bits (ce qui repreacutesentent quand mecircme 16 niveaux de vitesse)

bull Lrsquoadaptation du niveau de tension

Nous avons agrave la sortie du CAN une tension qui srsquoeacutetend de 0 agrave 5v or la commande des cartes Escap ce fait entre -5v et +5v

On peut voir cette adaptation comme lrsquoajout drsquoun offset de -25v et une amplification de gain 2

Voici le montage reacutealisant cette conversion

M1 est un montage suiveur qui lsquorecopiersquo la tension aux bornes de P1 mais sous une impeacutedance constante et eacutegale agrave 4R En 1996 lrsquoeacutequipe avait brancheacute P1 directement sur M3 mais cela a pour inconveacutenient de faire varier agrave la fois lrsquooffset et la penteLe potentiomegravetre P1 permet drsquoajuster lrsquooffset (permet par conseacutequent de reacutegler lrsquoarrecirct complet de moteur) (La valeur theacuteorique de lrsquooffset est 5V (cf formule en M3))

M2 est aussi un montage suiveur Le potentiomegravetre P2 permet drsquoajuster la pente (qui doit avoir un coefficient directeur de 2) Comme M2 est connecteacute au CAN dont la reacutesistance interne est de R P2 doit ecirctre a peut precirct eacutegal agrave R de la sorte la branche aura une reacutesistance eacutequivalente de 2R

M3 Sommateur (Vs = - 2 (Ve + Voffset))

Qursquoelle valeur choisir pour R

Theacuteoriquement on peut choisir nrsquoimporte quelle valeur pour R mais en pratique si R est trop petite une intensiteacute importante serait consommeacutee sans raison et si R est trop grande la forte impeacutedance du montage le rendra tregraves sensible aux parasites (secteur moteurshellip)Ce montage a eacuteteacute testeacute et fonctionne correctement pour R=5k les amplificateurs opeacuterationnels utiliseacutes sont des LM324 mais drsquoautres seraient tout agrave fait envisageables (peu de contraintes de vitesse et de tensions de deacutechets)

4 Conclusion

Nous avons preacutefeacutereacute ne pas utiliser les cartes Escap car les moteurs ne renvoient pas une position sous forme drsquoimpulsion mais une vitesse Etant donneacute que nous avions envisageacute un repeacuterage par odomeacutetrie cela compliquait consideacuterablement la tache

Toutefois il faut savoir que cette solution a eacuteteacute testeacutee et fonctionne tregraves bien (bonne preacutecision bonne dynamique) ainsi dans le cas ougrave le repeacuterage ne se fait pas par odomeacutetrie mais des balises exteacuterieures sachez que cette solution est tregraves pratique agrave utiliser En effet pour imposer une vitesse il suffit au microcontrocircleur drsquoappliquer sur un port un mot binaire correspondant agrave la vitesse voulue hellip et crsquoest tout La carte Escap se charge du reste

5 Carte drsquoasservissement numeacuterique laquo artisanale raquo

La carte reacutealiseacutee baseacutee sur un microcontrocircleur PIC 16F877A srsquoest aveacutereacutee fonctionnelle mais les tests drsquoalgorithmes drsquoasservissement nrsquoont pas eacuteteacute effectueacutesEn effet lrsquoutilisation de cette solution neacutecessite un microcontrocircleur deacutedieacute agrave lrsquoasservissement capable de communiquer via un protocole agrave deacutefinir avec la laquo carte megravere raquo (centralisant les retours des autres capteurs du robot et agissant sur les diffeacuterents actionneurs en fonction de la strateacutegie)Or afin de limiter le nombre de microcontrocircleurs sur le robot et du fait que lrsquoon dispose drsquoun budget suffisant nous avons deacutecideacute drsquoessayer drsquoutiliser des composants speacuteciaux reacutealisant lrsquoasservissement

Le systegraveme se deacutecompose en

- Un microcontrocircleur pour appliquer la PWM asservir et commander- Une carte de puissance pour chaque moteur baseacutee sur un LMD18200- Une carte compteur drsquoimpulsions pour les codeurs

Afin de favoriser lrsquointeractiviteacute et les reacuteglages jrsquoai ajouteacute une carte afficheur LCD avec 6 boutons sur la carte microcontrocircleur

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 33: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

e PID numeacuterique et reacuteglage

Notre premier problegraveme est de programmer le terme inteacutegral Il existe une meacutethode qui consiste agrave estimer la surface entre deux eacutechantillons mais dans notre cas nous avons des problegravemes dus aux bruits et agrave la freacutequence deacutechantillonnage Alors il faut sommer toutes les erreurs depuis de deacutebut

Notre second problegraveme est de programmer le terme deacuteriveacute La meacutethode ici est de calculer la pente entre deux eacutechantillons de e Theacuteoriquement cela revient agrave faire le calcul suivant

Avec la peacuteriode deacutechantillonnage Pour faire un asservissement numeacuterique il faut impeacuterativement avoir une peacuteriode fixe Pour gagner du temps de calcul geacuteneacuteralement on inteacutegre directement dans le gain Kd

Voici un lalgorithme exemple

Ti = 0 Initialise le terme inteacutegral

for ( i=1 i lt= Nb_cycles i++ )

Init_timers (1) Initialise le timer agrave notre peacuteriode 1 ms

Y = Codeur () Stoque la valeur du codeur dans Y Rst_codeur () Remet le codeur agrave zeacutero Ud = Consigne () Mise agrave jour de la consigne e_old=e Stoque e(t-1) e = Ud - Y Calcul de lerreur Ti = Ti + e Calcul de linteacutegral Calcul du PID U = Kp e Terme proportionnel

+ Ki Ti Terme inteacutegral + Kd ( e - e_old ) Terme deacuteriveacute Moteur (U) On applique la consigne

while ( end_timer() ) On attend la fin de la peacuteriode

Pour le reacuteglage des gains Kp Ki et Kd il existe diffeacuterentes meacutethodes Ici nous lavons fait de maniegravere empirique et le reacutesultats est plutocirct bon Linconveacutenient de ces meacutethodes est quelles demandent un modegravele du systegraveme ce qui est geacuteneacuteralement dur agrave produire Il existe

aussi des composants programmables qui permettent de faire directement lasservissement numeacuterique (HCTL 1100 LM629) Ils sont exactement baseacutes sur la meacutethode preacutesenteacutee ici

Pour ce qui est du reacuteglage des correcteurs lrsquooptimal est drsquoutiliser la meacutethode de lrsquooptimum dissymeacutetrique une fois que lrsquoon agrave reacutealiseacute le modegravele du systegraveme La plus part des eacutecoles ne reacutealisent pas ce modegravele et ce limite donc agrave une correction empirique en reacutealisant des tests ou en utilisant la meacutethode Ziegler-Nichols agrave partir de la reacuteponse agrave un eacutechelon de tension

Par la suite nous rappellerons les meacutethodes de Ziegler-Nichols et de lrsquooptimum dissymeacutetrique

f Les meacutethodes de Ziegler-Nichols

Ces meacutethodes fournissent des reacuteglages pour des correcteurs de type PID (pouvant ne comporter quune action Proportionnelle une action Proportionnelle et une action Inteacutegrale ou les 3 actions simultaneacutement) dont la structure est la suivante

bull MEacuteTHODE DE ZIEGLER NICHOLS TEMPORELLE

Elle est adapteacutee aux systegravemes stables en boucle ouverte qui ont une reacuteponse apeacuteriodique La reacuteponse agrave un eacutechelon unitaire du systegraveme physique doit ecirctre enregistreacutee Diffeacuterentes caracteacuteristiques de la reacuteponse obtenue sont mesureacutees

Le modegravele approcheacute utiliseacutee par Ziegler Nichols comporte une constante de temps et un retard pur ou bien un retard pur et un inteacutegrateur

Si le systegraveme physique comporte un inteacutegrateur les mesures de a et de L demeurent disponibles sur le deacutebut de la reacuteponse

Les reacuteglages suggeacutereacutes par la meacutethode temporelle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 1a - -correcteur PI 09a 3L -

correcteur PID 12a 2L L2Concernant le raffinement des reacuteglages augmenter Kp ou diminuer Ti augment les

oscillations de la sortie

bull MEacuteTHODE DE ZIEGLER NICHOLS FREacuteQUENTIELLE

Cette meacutethode convient particuliegraverement bien aux systegravemes instables en boucle ouverte pour lesquels la meacutethode temporelle nest pas envisageable Lexpeacuterimentation se fait sur le systegraveme boucleacute avec un simple gain proportionnel qui doit ecirctre stable Le principe est de modifier la valeur du gain par essai-erreur jusquagrave atteindre la limite de stabiliteacute (pheacutenomegravene de pompage) Il reste agrave relever le gain limite K0 obtenu et agrave mesurer la peacuteriode T0 des oscillations de la reacuteponse obtenue

Les reacuteglages suggeacutereacutes par la meacutethode freacutequentielle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 05 K0 - -correcteur PI 045 K0 08 T0 -

correcteur PID 06 K0 05 T0 0125 T0

A la page Internet suivante vous trouverez un simulateur de cette meacutethode

httpwww-hadocensieginpgfrhadocateliersreglageEmpCorrReglEmpCorrDroithtml

g Meacutethode de lrsquooptimum dyssimeacutetique (voir poly MC06 Chap 5 et 8)

Cette meacutethode srsquoapplique une fois le modegravele reacutealiseacute et mis sous la forme drsquoun second ordre

et on obtient le correcteur PI

pour une surtension deacutesireacutee QdB

Q = 10^(QdB20)λ= radic(Qsup2(Qsup2-1))Δφ = arcos (1 λ)α= ((1+sin(Δφ))cos(Δφ))sup2ωN= ωQαω0= ωQradicαKP= ω0 λ KQ

4 Les microcontrocircleurs

a Avant propos

Cette fiche se veut ecirctre sous la forme dun projet Un projet non termineacute ougrave chacun peut apporter sa contribution (ameacuteliorations adaptations corrections etc)De ce fait ces pages sont ameneacutees agrave eacutevoluer et vous-mecircme pourrez participer agrave leur eacutevolution

Pourquoi avoir choisit un tel mode de travail Tout simplement parce que le sujet est vaste et que des variations sont possibles suivant lutilisation quen feront les diffeacuterentes personnes

Le but de ce projet est de reacutealiser une double asservissement de vitesse (type PID) de deux moteurs sur un seul PIC (type 16F877) Lutiliteacute majeure eacutetant de faire rouler un robot bien droit et agrave la bonne vitesse A quoi ccedila sert plus preacuteciseacutement

Avec un seul PIC ce projet permet aux roboticiens amateurs et chevronneacutes de reacutealiser facilement leur asservissement de vitesse de moteurs agrave courant continu (en geacuteneacuteral les moteurs de propulsions de leur robot mais ccedila peut ecirctre bien sucircr dautres moteurs) La commande de lasservissement pourra se faire agrave terme en liaison seacuterie (deacutejagrave fait) I2C ou par bus ISA

b Avantages

Il existe bien sucircr dautres systegravemes qui gegraverent un asservissement de vitesses Des systegravemes professionnels existent comme les LM629 Ils ont linconveacutenient decirctre cher (et ce pour un seul moteur) et relativement complexes

Pourquoi chercher un fusil pour chasser des moustiques Le double asservissement sur PIC vous coucircte le prix dun PIC soit environ 15Euro pour un 16F877 actuellement et ce pour 2 moteurs Ce double asservissement se veut relativement simple De plus vous pouvez en modifier le programme et ladapter agrave vos besoins

c Inconveacutenients

Les personnes qui auront les moyens preacutefeacutererons opter pour un systegraveme professionnel certainement pour des raisons de fiabiliteacute mais cest agrave leurs risques et peacuterils -)La puissance du PIC eacutetant limiteacutee il ne peut pas reacutealiser des PID trop rapides ou trop complexes Il y a en particulier une limitation sur le nombre dimpulsions par seconde quil est capable de geacuterer

Le langage utiliseacute eacutetant le C il faut une licence du logiciel pour pouvoir modifier et recompiler le code source c Mais le projet se veut geacuteneacuterique Une version donneacutee pourra ecirctre utiliseacute sans recompilation en respectant quelques contraintes

d Asservissement

En fait on pourrait imaginer quil suffirait denvoyer au moteur une puissance constante pour quil tourne tout le temps agrave la mecircme vitesse Ce nest pas vrai du tout Tout dabord 2 moteurs dune mecircme seacuterie nauront pas forceacutement le mecircme comportement Ensuite parce que les niveaux de tension ou dautre diffeacuterences eacutelectriques peuvent jouer Enfin parce que des influences exteacuterieures (obstacles frein meacutecanique du robot) peuvent jouer

Du coup il est tregraves difficile de faire aller un moteur agrave la vitesse voulue Parfois ce nest pas gecircnant mais ccedila peut lecirctre Un exemple classique est le robot avec 2 roues motrices type char une configuration qui est tregraves courante Mais pour que ce robot aille droit il faut que les 2 moteurs aillent exactement agrave la mecircme vitesse

La solution est de faire un asservissement Cest a dire moduler dynamiquement la puissance envoyeacute aux moteurs suivant leur vitesse mesureacutee afin dadapter celle-ci agrave ce qui est deacutesireacuteeCela implique un eacuteleacutement tregraves important pour asservir il faut un capteur de vitesse du moteur En geacuteneacuteral il sagit dun compte-tour qui enverra N impulsions (ou pas) par tour de moteur Ensuite un programme va calculer en fonction de la vitesse mesureacutee du moteur la puissance agrave utiliser

Les asservissements sont constamment en train de chercher leacutequilibre Il faut bien comprendre quils mettent un certain temps agrave latteindre et ce dernier peut aussi ecirctre instable si lasservissement est mal reacutegleacute

Lasservissement quon va utiliser ici est un classique PIDou plus preacuteciseacutement un PI car pour des raisons de vitesses de traitement la composante deacuteriveacutee est laisseacutee de coteacute (mais rien de difficile agrave rajouter)

Le PID ou Proportionnel Inteacutegrale Deacuteriveacute est une meacutethode de calcul dasservissement

Soit Kp Ki et Kd les coefficients proportionnels inteacutegrale et deacuteriveacuteSoit e lerreur Vitesse mesureacutee moins vitesse demandeacuteeSoit Ti le terme inteacutegral dabord initialiseacute agrave 0

Consigne a appliquer (PWM) = Kp e + (1Ki) (Ti += e) + Kd (e - e(t-1))

On pourrait dire des pages et des pages sur le PID et ce nest pas mon but ici Merci de vous reporter au lien ci-dessous

Pour plus de deacutetails sur le PID la page de lANCR httpwwwancrorgfichtechactionpidindexhtmChez les Fribottes la Simulation de Jean-Claude httpwwwwikifreefrWiKiFriindexphpSimulateur20de20PID

e Le pic

Le PIC est un petit microcontrocircleur assez bon marche et simple a programmer comme a utiliser

La aussi je vais pas rentrer dans les deacutetails vous pouvez vous reporter agrave la bdtech du site Fribotte et en particulier aux cours de Bigonoff

Le PIC est ici programmeacute en C voir la page Fribotte ici Lutilisation du langage C permet dalleacuteger consideacuterablement le deacuteveloppement dune application compliqueacutee

2 Module AVR

httpwwwenseirbfr~matzfravrphp

Tregraves peu de renseignement sur ce module sinon ces informations drsquoun eacutetudiant de lrsquoEnseirb

Depuis plusieurs anneacutees je participe agrave la coupe de robotique E=M6 dont lobjectif pour chaque eacutequipe est de fabriquer un robot autonome devant se conformer agrave un regraveglement Pour plus dinfos vous pouvez vous rendre sur le site de mon eacutequipe Microb Technology ou bien sur le site de Planegravete Sciences lorganisme beacuteneacutevole qui organise cette compeacutetition

Jai deacutecouvert en 2001 les microcontrocircleurs Atmel AVR auxquels je me suis beaucoup attacheacute dune part parce quils sont assez performants pour des microcontrocircleurs 8 bits mais aussi et surtout car le fameux compilateur libre GCC est capable de compiler du code C pour ces petites becirctes Il existe de surcroicirct plusieurs outils libres permettant de les programmer de les simuler etc

Le but de ce projet est donc de deacutevelopper des modules servant dinterface geacuteneacuterique avec le hardware du microcontrocircleur quel que soit la version (par exemple les UART inclus dans les AVR AtMega sont diffeacuterents de ceux preacutesents dans les petits AVR) et de deacutevelopper des modules utiles pour certaines utilisations usuelles et pas seulement pour la coupe E=M6 (codage de hamming asservissement chiffrement etc)

Vous pouvez contacter leacutequipe de deacuteveloppement agrave avr-devdroids-corporg Pour le moment aucune release na eacuteteacute faite mais le travail est deacutejagrave bien avanceacute Chaque soir un screenshot du CVS est reacutealiseacute Il peut ne pas compiler mais normalement ccedila devrait fonctionner Voici le lien

3 Modules drsquoasservissement analogique laquo Escap raquo

Nous avons essayeacute de reacutecupeacuterer les cartes de commande Escap pour moteurs Escap qui avaient eacuteteacute utiliseacutees en 96 et 98 avec succegraves

Nous les avons monteacutes sur une base roulante qui pesait en tout 74 kgVoici grosso-modo leurs avantages et leurs inconveacutenients (pour les notices techniques voir le rapport 96 ou 98)

a Avantages

Cette carte inclut directement un asservissement avec correcteur PI la commande de puissance les ponts en H

Elle est tregraves facile agrave utiliser Elle est speacutecialement conccedilue pour les moteurs Escap que nous avons donc

parfaitement adapteacutee

b Inconveacutenients

Les moteurs ne fonctionnent correctement que sous 24v Les cartes et les moteurs semblent assez gourment Les cartes nantis de gros radiateurs sont relativement encombrantes Les tachymegravetres monteacutes sur les moteurs ne donnent pas une indication de position

mais de vitesse (qui plus est en analogique)

Nous avons preacutefeacutereacute refaire la partie commande car celle de 1996 souffrait de quelques deacutefauts (cf rapport 1996)

La conversion numeacuterique analogique

Pour reacutealiser la conversion numeacuterique analogique nous avons choisit un pont agrave reacutesistance R-2R

Nous pouvons consideacuterer que chaque bit est relieacute agrave un geacuteneacuterateur ideacuteal de tension (qui deacutelivre 0v ou 5v) Par conseacutequent la reacutesistance eacutequivalente quelque soit lrsquoeacutetat des bits et quelques soit le nombre de bits vue entre la sortie et la masse sera eacutegal agrave R

La tension Vs en fonction de lrsquoeacutetat des bits sera

Ce type de CAN eacutetant tregraves classique nous nrsquoindiquerons pas les deacutemonstrations toutefois vous pourrez les trouver tregraves facilement sur Internet ou sur le Cd-rom drsquoannexes joint au dossier

Le montage de Thevenin eacutequivalent est donc

Nous avons jugeacute qursquoune discreacutetisation sur 8 bits eacutetait un peu superflu crsquoest pourquoi nous nous contenterons de 4 bits (ce qui repreacutesentent quand mecircme 16 niveaux de vitesse)

bull Lrsquoadaptation du niveau de tension

Nous avons agrave la sortie du CAN une tension qui srsquoeacutetend de 0 agrave 5v or la commande des cartes Escap ce fait entre -5v et +5v

On peut voir cette adaptation comme lrsquoajout drsquoun offset de -25v et une amplification de gain 2

Voici le montage reacutealisant cette conversion

M1 est un montage suiveur qui lsquorecopiersquo la tension aux bornes de P1 mais sous une impeacutedance constante et eacutegale agrave 4R En 1996 lrsquoeacutequipe avait brancheacute P1 directement sur M3 mais cela a pour inconveacutenient de faire varier agrave la fois lrsquooffset et la penteLe potentiomegravetre P1 permet drsquoajuster lrsquooffset (permet par conseacutequent de reacutegler lrsquoarrecirct complet de moteur) (La valeur theacuteorique de lrsquooffset est 5V (cf formule en M3))

M2 est aussi un montage suiveur Le potentiomegravetre P2 permet drsquoajuster la pente (qui doit avoir un coefficient directeur de 2) Comme M2 est connecteacute au CAN dont la reacutesistance interne est de R P2 doit ecirctre a peut precirct eacutegal agrave R de la sorte la branche aura une reacutesistance eacutequivalente de 2R

M3 Sommateur (Vs = - 2 (Ve + Voffset))

Qursquoelle valeur choisir pour R

Theacuteoriquement on peut choisir nrsquoimporte quelle valeur pour R mais en pratique si R est trop petite une intensiteacute importante serait consommeacutee sans raison et si R est trop grande la forte impeacutedance du montage le rendra tregraves sensible aux parasites (secteur moteurshellip)Ce montage a eacuteteacute testeacute et fonctionne correctement pour R=5k les amplificateurs opeacuterationnels utiliseacutes sont des LM324 mais drsquoautres seraient tout agrave fait envisageables (peu de contraintes de vitesse et de tensions de deacutechets)

4 Conclusion

Nous avons preacutefeacutereacute ne pas utiliser les cartes Escap car les moteurs ne renvoient pas une position sous forme drsquoimpulsion mais une vitesse Etant donneacute que nous avions envisageacute un repeacuterage par odomeacutetrie cela compliquait consideacuterablement la tache

Toutefois il faut savoir que cette solution a eacuteteacute testeacutee et fonctionne tregraves bien (bonne preacutecision bonne dynamique) ainsi dans le cas ougrave le repeacuterage ne se fait pas par odomeacutetrie mais des balises exteacuterieures sachez que cette solution est tregraves pratique agrave utiliser En effet pour imposer une vitesse il suffit au microcontrocircleur drsquoappliquer sur un port un mot binaire correspondant agrave la vitesse voulue hellip et crsquoest tout La carte Escap se charge du reste

5 Carte drsquoasservissement numeacuterique laquo artisanale raquo

La carte reacutealiseacutee baseacutee sur un microcontrocircleur PIC 16F877A srsquoest aveacutereacutee fonctionnelle mais les tests drsquoalgorithmes drsquoasservissement nrsquoont pas eacuteteacute effectueacutesEn effet lrsquoutilisation de cette solution neacutecessite un microcontrocircleur deacutedieacute agrave lrsquoasservissement capable de communiquer via un protocole agrave deacutefinir avec la laquo carte megravere raquo (centralisant les retours des autres capteurs du robot et agissant sur les diffeacuterents actionneurs en fonction de la strateacutegie)Or afin de limiter le nombre de microcontrocircleurs sur le robot et du fait que lrsquoon dispose drsquoun budget suffisant nous avons deacutecideacute drsquoessayer drsquoutiliser des composants speacuteciaux reacutealisant lrsquoasservissement

Le systegraveme se deacutecompose en

- Un microcontrocircleur pour appliquer la PWM asservir et commander- Une carte de puissance pour chaque moteur baseacutee sur un LMD18200- Une carte compteur drsquoimpulsions pour les codeurs

Afin de favoriser lrsquointeractiviteacute et les reacuteglages jrsquoai ajouteacute une carte afficheur LCD avec 6 boutons sur la carte microcontrocircleur

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 34: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

aussi des composants programmables qui permettent de faire directement lasservissement numeacuterique (HCTL 1100 LM629) Ils sont exactement baseacutes sur la meacutethode preacutesenteacutee ici

Pour ce qui est du reacuteglage des correcteurs lrsquooptimal est drsquoutiliser la meacutethode de lrsquooptimum dissymeacutetrique une fois que lrsquoon agrave reacutealiseacute le modegravele du systegraveme La plus part des eacutecoles ne reacutealisent pas ce modegravele et ce limite donc agrave une correction empirique en reacutealisant des tests ou en utilisant la meacutethode Ziegler-Nichols agrave partir de la reacuteponse agrave un eacutechelon de tension

Par la suite nous rappellerons les meacutethodes de Ziegler-Nichols et de lrsquooptimum dissymeacutetrique

f Les meacutethodes de Ziegler-Nichols

Ces meacutethodes fournissent des reacuteglages pour des correcteurs de type PID (pouvant ne comporter quune action Proportionnelle une action Proportionnelle et une action Inteacutegrale ou les 3 actions simultaneacutement) dont la structure est la suivante

bull MEacuteTHODE DE ZIEGLER NICHOLS TEMPORELLE

Elle est adapteacutee aux systegravemes stables en boucle ouverte qui ont une reacuteponse apeacuteriodique La reacuteponse agrave un eacutechelon unitaire du systegraveme physique doit ecirctre enregistreacutee Diffeacuterentes caracteacuteristiques de la reacuteponse obtenue sont mesureacutees

Le modegravele approcheacute utiliseacutee par Ziegler Nichols comporte une constante de temps et un retard pur ou bien un retard pur et un inteacutegrateur

Si le systegraveme physique comporte un inteacutegrateur les mesures de a et de L demeurent disponibles sur le deacutebut de la reacuteponse

Les reacuteglages suggeacutereacutes par la meacutethode temporelle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 1a - -correcteur PI 09a 3L -

correcteur PID 12a 2L L2Concernant le raffinement des reacuteglages augmenter Kp ou diminuer Ti augment les

oscillations de la sortie

bull MEacuteTHODE DE ZIEGLER NICHOLS FREacuteQUENTIELLE

Cette meacutethode convient particuliegraverement bien aux systegravemes instables en boucle ouverte pour lesquels la meacutethode temporelle nest pas envisageable Lexpeacuterimentation se fait sur le systegraveme boucleacute avec un simple gain proportionnel qui doit ecirctre stable Le principe est de modifier la valeur du gain par essai-erreur jusquagrave atteindre la limite de stabiliteacute (pheacutenomegravene de pompage) Il reste agrave relever le gain limite K0 obtenu et agrave mesurer la peacuteriode T0 des oscillations de la reacuteponse obtenue

Les reacuteglages suggeacutereacutes par la meacutethode freacutequentielle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 05 K0 - -correcteur PI 045 K0 08 T0 -

correcteur PID 06 K0 05 T0 0125 T0

A la page Internet suivante vous trouverez un simulateur de cette meacutethode

httpwww-hadocensieginpgfrhadocateliersreglageEmpCorrReglEmpCorrDroithtml

g Meacutethode de lrsquooptimum dyssimeacutetique (voir poly MC06 Chap 5 et 8)

Cette meacutethode srsquoapplique une fois le modegravele reacutealiseacute et mis sous la forme drsquoun second ordre

et on obtient le correcteur PI

pour une surtension deacutesireacutee QdB

Q = 10^(QdB20)λ= radic(Qsup2(Qsup2-1))Δφ = arcos (1 λ)α= ((1+sin(Δφ))cos(Δφ))sup2ωN= ωQαω0= ωQradicαKP= ω0 λ KQ

4 Les microcontrocircleurs

a Avant propos

Cette fiche se veut ecirctre sous la forme dun projet Un projet non termineacute ougrave chacun peut apporter sa contribution (ameacuteliorations adaptations corrections etc)De ce fait ces pages sont ameneacutees agrave eacutevoluer et vous-mecircme pourrez participer agrave leur eacutevolution

Pourquoi avoir choisit un tel mode de travail Tout simplement parce que le sujet est vaste et que des variations sont possibles suivant lutilisation quen feront les diffeacuterentes personnes

Le but de ce projet est de reacutealiser une double asservissement de vitesse (type PID) de deux moteurs sur un seul PIC (type 16F877) Lutiliteacute majeure eacutetant de faire rouler un robot bien droit et agrave la bonne vitesse A quoi ccedila sert plus preacuteciseacutement

Avec un seul PIC ce projet permet aux roboticiens amateurs et chevronneacutes de reacutealiser facilement leur asservissement de vitesse de moteurs agrave courant continu (en geacuteneacuteral les moteurs de propulsions de leur robot mais ccedila peut ecirctre bien sucircr dautres moteurs) La commande de lasservissement pourra se faire agrave terme en liaison seacuterie (deacutejagrave fait) I2C ou par bus ISA

b Avantages

Il existe bien sucircr dautres systegravemes qui gegraverent un asservissement de vitesses Des systegravemes professionnels existent comme les LM629 Ils ont linconveacutenient decirctre cher (et ce pour un seul moteur) et relativement complexes

Pourquoi chercher un fusil pour chasser des moustiques Le double asservissement sur PIC vous coucircte le prix dun PIC soit environ 15Euro pour un 16F877 actuellement et ce pour 2 moteurs Ce double asservissement se veut relativement simple De plus vous pouvez en modifier le programme et ladapter agrave vos besoins

c Inconveacutenients

Les personnes qui auront les moyens preacutefeacutererons opter pour un systegraveme professionnel certainement pour des raisons de fiabiliteacute mais cest agrave leurs risques et peacuterils -)La puissance du PIC eacutetant limiteacutee il ne peut pas reacutealiser des PID trop rapides ou trop complexes Il y a en particulier une limitation sur le nombre dimpulsions par seconde quil est capable de geacuterer

Le langage utiliseacute eacutetant le C il faut une licence du logiciel pour pouvoir modifier et recompiler le code source c Mais le projet se veut geacuteneacuterique Une version donneacutee pourra ecirctre utiliseacute sans recompilation en respectant quelques contraintes

d Asservissement

En fait on pourrait imaginer quil suffirait denvoyer au moteur une puissance constante pour quil tourne tout le temps agrave la mecircme vitesse Ce nest pas vrai du tout Tout dabord 2 moteurs dune mecircme seacuterie nauront pas forceacutement le mecircme comportement Ensuite parce que les niveaux de tension ou dautre diffeacuterences eacutelectriques peuvent jouer Enfin parce que des influences exteacuterieures (obstacles frein meacutecanique du robot) peuvent jouer

Du coup il est tregraves difficile de faire aller un moteur agrave la vitesse voulue Parfois ce nest pas gecircnant mais ccedila peut lecirctre Un exemple classique est le robot avec 2 roues motrices type char une configuration qui est tregraves courante Mais pour que ce robot aille droit il faut que les 2 moteurs aillent exactement agrave la mecircme vitesse

La solution est de faire un asservissement Cest a dire moduler dynamiquement la puissance envoyeacute aux moteurs suivant leur vitesse mesureacutee afin dadapter celle-ci agrave ce qui est deacutesireacuteeCela implique un eacuteleacutement tregraves important pour asservir il faut un capteur de vitesse du moteur En geacuteneacuteral il sagit dun compte-tour qui enverra N impulsions (ou pas) par tour de moteur Ensuite un programme va calculer en fonction de la vitesse mesureacutee du moteur la puissance agrave utiliser

Les asservissements sont constamment en train de chercher leacutequilibre Il faut bien comprendre quils mettent un certain temps agrave latteindre et ce dernier peut aussi ecirctre instable si lasservissement est mal reacutegleacute

Lasservissement quon va utiliser ici est un classique PIDou plus preacuteciseacutement un PI car pour des raisons de vitesses de traitement la composante deacuteriveacutee est laisseacutee de coteacute (mais rien de difficile agrave rajouter)

Le PID ou Proportionnel Inteacutegrale Deacuteriveacute est une meacutethode de calcul dasservissement

Soit Kp Ki et Kd les coefficients proportionnels inteacutegrale et deacuteriveacuteSoit e lerreur Vitesse mesureacutee moins vitesse demandeacuteeSoit Ti le terme inteacutegral dabord initialiseacute agrave 0

Consigne a appliquer (PWM) = Kp e + (1Ki) (Ti += e) + Kd (e - e(t-1))

On pourrait dire des pages et des pages sur le PID et ce nest pas mon but ici Merci de vous reporter au lien ci-dessous

Pour plus de deacutetails sur le PID la page de lANCR httpwwwancrorgfichtechactionpidindexhtmChez les Fribottes la Simulation de Jean-Claude httpwwwwikifreefrWiKiFriindexphpSimulateur20de20PID

e Le pic

Le PIC est un petit microcontrocircleur assez bon marche et simple a programmer comme a utiliser

La aussi je vais pas rentrer dans les deacutetails vous pouvez vous reporter agrave la bdtech du site Fribotte et en particulier aux cours de Bigonoff

Le PIC est ici programmeacute en C voir la page Fribotte ici Lutilisation du langage C permet dalleacuteger consideacuterablement le deacuteveloppement dune application compliqueacutee

2 Module AVR

httpwwwenseirbfr~matzfravrphp

Tregraves peu de renseignement sur ce module sinon ces informations drsquoun eacutetudiant de lrsquoEnseirb

Depuis plusieurs anneacutees je participe agrave la coupe de robotique E=M6 dont lobjectif pour chaque eacutequipe est de fabriquer un robot autonome devant se conformer agrave un regraveglement Pour plus dinfos vous pouvez vous rendre sur le site de mon eacutequipe Microb Technology ou bien sur le site de Planegravete Sciences lorganisme beacuteneacutevole qui organise cette compeacutetition

Jai deacutecouvert en 2001 les microcontrocircleurs Atmel AVR auxquels je me suis beaucoup attacheacute dune part parce quils sont assez performants pour des microcontrocircleurs 8 bits mais aussi et surtout car le fameux compilateur libre GCC est capable de compiler du code C pour ces petites becirctes Il existe de surcroicirct plusieurs outils libres permettant de les programmer de les simuler etc

Le but de ce projet est donc de deacutevelopper des modules servant dinterface geacuteneacuterique avec le hardware du microcontrocircleur quel que soit la version (par exemple les UART inclus dans les AVR AtMega sont diffeacuterents de ceux preacutesents dans les petits AVR) et de deacutevelopper des modules utiles pour certaines utilisations usuelles et pas seulement pour la coupe E=M6 (codage de hamming asservissement chiffrement etc)

Vous pouvez contacter leacutequipe de deacuteveloppement agrave avr-devdroids-corporg Pour le moment aucune release na eacuteteacute faite mais le travail est deacutejagrave bien avanceacute Chaque soir un screenshot du CVS est reacutealiseacute Il peut ne pas compiler mais normalement ccedila devrait fonctionner Voici le lien

3 Modules drsquoasservissement analogique laquo Escap raquo

Nous avons essayeacute de reacutecupeacuterer les cartes de commande Escap pour moteurs Escap qui avaient eacuteteacute utiliseacutees en 96 et 98 avec succegraves

Nous les avons monteacutes sur une base roulante qui pesait en tout 74 kgVoici grosso-modo leurs avantages et leurs inconveacutenients (pour les notices techniques voir le rapport 96 ou 98)

a Avantages

Cette carte inclut directement un asservissement avec correcteur PI la commande de puissance les ponts en H

Elle est tregraves facile agrave utiliser Elle est speacutecialement conccedilue pour les moteurs Escap que nous avons donc

parfaitement adapteacutee

b Inconveacutenients

Les moteurs ne fonctionnent correctement que sous 24v Les cartes et les moteurs semblent assez gourment Les cartes nantis de gros radiateurs sont relativement encombrantes Les tachymegravetres monteacutes sur les moteurs ne donnent pas une indication de position

mais de vitesse (qui plus est en analogique)

Nous avons preacutefeacutereacute refaire la partie commande car celle de 1996 souffrait de quelques deacutefauts (cf rapport 1996)

La conversion numeacuterique analogique

Pour reacutealiser la conversion numeacuterique analogique nous avons choisit un pont agrave reacutesistance R-2R

Nous pouvons consideacuterer que chaque bit est relieacute agrave un geacuteneacuterateur ideacuteal de tension (qui deacutelivre 0v ou 5v) Par conseacutequent la reacutesistance eacutequivalente quelque soit lrsquoeacutetat des bits et quelques soit le nombre de bits vue entre la sortie et la masse sera eacutegal agrave R

La tension Vs en fonction de lrsquoeacutetat des bits sera

Ce type de CAN eacutetant tregraves classique nous nrsquoindiquerons pas les deacutemonstrations toutefois vous pourrez les trouver tregraves facilement sur Internet ou sur le Cd-rom drsquoannexes joint au dossier

Le montage de Thevenin eacutequivalent est donc

Nous avons jugeacute qursquoune discreacutetisation sur 8 bits eacutetait un peu superflu crsquoest pourquoi nous nous contenterons de 4 bits (ce qui repreacutesentent quand mecircme 16 niveaux de vitesse)

bull Lrsquoadaptation du niveau de tension

Nous avons agrave la sortie du CAN une tension qui srsquoeacutetend de 0 agrave 5v or la commande des cartes Escap ce fait entre -5v et +5v

On peut voir cette adaptation comme lrsquoajout drsquoun offset de -25v et une amplification de gain 2

Voici le montage reacutealisant cette conversion

M1 est un montage suiveur qui lsquorecopiersquo la tension aux bornes de P1 mais sous une impeacutedance constante et eacutegale agrave 4R En 1996 lrsquoeacutequipe avait brancheacute P1 directement sur M3 mais cela a pour inconveacutenient de faire varier agrave la fois lrsquooffset et la penteLe potentiomegravetre P1 permet drsquoajuster lrsquooffset (permet par conseacutequent de reacutegler lrsquoarrecirct complet de moteur) (La valeur theacuteorique de lrsquooffset est 5V (cf formule en M3))

M2 est aussi un montage suiveur Le potentiomegravetre P2 permet drsquoajuster la pente (qui doit avoir un coefficient directeur de 2) Comme M2 est connecteacute au CAN dont la reacutesistance interne est de R P2 doit ecirctre a peut precirct eacutegal agrave R de la sorte la branche aura une reacutesistance eacutequivalente de 2R

M3 Sommateur (Vs = - 2 (Ve + Voffset))

Qursquoelle valeur choisir pour R

Theacuteoriquement on peut choisir nrsquoimporte quelle valeur pour R mais en pratique si R est trop petite une intensiteacute importante serait consommeacutee sans raison et si R est trop grande la forte impeacutedance du montage le rendra tregraves sensible aux parasites (secteur moteurshellip)Ce montage a eacuteteacute testeacute et fonctionne correctement pour R=5k les amplificateurs opeacuterationnels utiliseacutes sont des LM324 mais drsquoautres seraient tout agrave fait envisageables (peu de contraintes de vitesse et de tensions de deacutechets)

4 Conclusion

Nous avons preacutefeacutereacute ne pas utiliser les cartes Escap car les moteurs ne renvoient pas une position sous forme drsquoimpulsion mais une vitesse Etant donneacute que nous avions envisageacute un repeacuterage par odomeacutetrie cela compliquait consideacuterablement la tache

Toutefois il faut savoir que cette solution a eacuteteacute testeacutee et fonctionne tregraves bien (bonne preacutecision bonne dynamique) ainsi dans le cas ougrave le repeacuterage ne se fait pas par odomeacutetrie mais des balises exteacuterieures sachez que cette solution est tregraves pratique agrave utiliser En effet pour imposer une vitesse il suffit au microcontrocircleur drsquoappliquer sur un port un mot binaire correspondant agrave la vitesse voulue hellip et crsquoest tout La carte Escap se charge du reste

5 Carte drsquoasservissement numeacuterique laquo artisanale raquo

La carte reacutealiseacutee baseacutee sur un microcontrocircleur PIC 16F877A srsquoest aveacutereacutee fonctionnelle mais les tests drsquoalgorithmes drsquoasservissement nrsquoont pas eacuteteacute effectueacutesEn effet lrsquoutilisation de cette solution neacutecessite un microcontrocircleur deacutedieacute agrave lrsquoasservissement capable de communiquer via un protocole agrave deacutefinir avec la laquo carte megravere raquo (centralisant les retours des autres capteurs du robot et agissant sur les diffeacuterents actionneurs en fonction de la strateacutegie)Or afin de limiter le nombre de microcontrocircleurs sur le robot et du fait que lrsquoon dispose drsquoun budget suffisant nous avons deacutecideacute drsquoessayer drsquoutiliser des composants speacuteciaux reacutealisant lrsquoasservissement

Le systegraveme se deacutecompose en

- Un microcontrocircleur pour appliquer la PWM asservir et commander- Une carte de puissance pour chaque moteur baseacutee sur un LMD18200- Une carte compteur drsquoimpulsions pour les codeurs

Afin de favoriser lrsquointeractiviteacute et les reacuteglages jrsquoai ajouteacute une carte afficheur LCD avec 6 boutons sur la carte microcontrocircleur

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 35: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

Les reacuteglages suggeacutereacutes par la meacutethode temporelle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 1a - -correcteur PI 09a 3L -

correcteur PID 12a 2L L2Concernant le raffinement des reacuteglages augmenter Kp ou diminuer Ti augment les

oscillations de la sortie

bull MEacuteTHODE DE ZIEGLER NICHOLS FREacuteQUENTIELLE

Cette meacutethode convient particuliegraverement bien aux systegravemes instables en boucle ouverte pour lesquels la meacutethode temporelle nest pas envisageable Lexpeacuterimentation se fait sur le systegraveme boucleacute avec un simple gain proportionnel qui doit ecirctre stable Le principe est de modifier la valeur du gain par essai-erreur jusquagrave atteindre la limite de stabiliteacute (pheacutenomegravene de pompage) Il reste agrave relever le gain limite K0 obtenu et agrave mesurer la peacuteriode T0 des oscillations de la reacuteponse obtenue

Les reacuteglages suggeacutereacutes par la meacutethode freacutequentielle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 05 K0 - -correcteur PI 045 K0 08 T0 -

correcteur PID 06 K0 05 T0 0125 T0

A la page Internet suivante vous trouverez un simulateur de cette meacutethode

httpwww-hadocensieginpgfrhadocateliersreglageEmpCorrReglEmpCorrDroithtml

g Meacutethode de lrsquooptimum dyssimeacutetique (voir poly MC06 Chap 5 et 8)

Cette meacutethode srsquoapplique une fois le modegravele reacutealiseacute et mis sous la forme drsquoun second ordre

et on obtient le correcteur PI

pour une surtension deacutesireacutee QdB

Q = 10^(QdB20)λ= radic(Qsup2(Qsup2-1))Δφ = arcos (1 λ)α= ((1+sin(Δφ))cos(Δφ))sup2ωN= ωQαω0= ωQradicαKP= ω0 λ KQ

4 Les microcontrocircleurs

a Avant propos

Cette fiche se veut ecirctre sous la forme dun projet Un projet non termineacute ougrave chacun peut apporter sa contribution (ameacuteliorations adaptations corrections etc)De ce fait ces pages sont ameneacutees agrave eacutevoluer et vous-mecircme pourrez participer agrave leur eacutevolution

Pourquoi avoir choisit un tel mode de travail Tout simplement parce que le sujet est vaste et que des variations sont possibles suivant lutilisation quen feront les diffeacuterentes personnes

Le but de ce projet est de reacutealiser une double asservissement de vitesse (type PID) de deux moteurs sur un seul PIC (type 16F877) Lutiliteacute majeure eacutetant de faire rouler un robot bien droit et agrave la bonne vitesse A quoi ccedila sert plus preacuteciseacutement

Avec un seul PIC ce projet permet aux roboticiens amateurs et chevronneacutes de reacutealiser facilement leur asservissement de vitesse de moteurs agrave courant continu (en geacuteneacuteral les moteurs de propulsions de leur robot mais ccedila peut ecirctre bien sucircr dautres moteurs) La commande de lasservissement pourra se faire agrave terme en liaison seacuterie (deacutejagrave fait) I2C ou par bus ISA

b Avantages

Il existe bien sucircr dautres systegravemes qui gegraverent un asservissement de vitesses Des systegravemes professionnels existent comme les LM629 Ils ont linconveacutenient decirctre cher (et ce pour un seul moteur) et relativement complexes

Pourquoi chercher un fusil pour chasser des moustiques Le double asservissement sur PIC vous coucircte le prix dun PIC soit environ 15Euro pour un 16F877 actuellement et ce pour 2 moteurs Ce double asservissement se veut relativement simple De plus vous pouvez en modifier le programme et ladapter agrave vos besoins

c Inconveacutenients

Les personnes qui auront les moyens preacutefeacutererons opter pour un systegraveme professionnel certainement pour des raisons de fiabiliteacute mais cest agrave leurs risques et peacuterils -)La puissance du PIC eacutetant limiteacutee il ne peut pas reacutealiser des PID trop rapides ou trop complexes Il y a en particulier une limitation sur le nombre dimpulsions par seconde quil est capable de geacuterer

Le langage utiliseacute eacutetant le C il faut une licence du logiciel pour pouvoir modifier et recompiler le code source c Mais le projet se veut geacuteneacuterique Une version donneacutee pourra ecirctre utiliseacute sans recompilation en respectant quelques contraintes

d Asservissement

En fait on pourrait imaginer quil suffirait denvoyer au moteur une puissance constante pour quil tourne tout le temps agrave la mecircme vitesse Ce nest pas vrai du tout Tout dabord 2 moteurs dune mecircme seacuterie nauront pas forceacutement le mecircme comportement Ensuite parce que les niveaux de tension ou dautre diffeacuterences eacutelectriques peuvent jouer Enfin parce que des influences exteacuterieures (obstacles frein meacutecanique du robot) peuvent jouer

Du coup il est tregraves difficile de faire aller un moteur agrave la vitesse voulue Parfois ce nest pas gecircnant mais ccedila peut lecirctre Un exemple classique est le robot avec 2 roues motrices type char une configuration qui est tregraves courante Mais pour que ce robot aille droit il faut que les 2 moteurs aillent exactement agrave la mecircme vitesse

La solution est de faire un asservissement Cest a dire moduler dynamiquement la puissance envoyeacute aux moteurs suivant leur vitesse mesureacutee afin dadapter celle-ci agrave ce qui est deacutesireacuteeCela implique un eacuteleacutement tregraves important pour asservir il faut un capteur de vitesse du moteur En geacuteneacuteral il sagit dun compte-tour qui enverra N impulsions (ou pas) par tour de moteur Ensuite un programme va calculer en fonction de la vitesse mesureacutee du moteur la puissance agrave utiliser

Les asservissements sont constamment en train de chercher leacutequilibre Il faut bien comprendre quils mettent un certain temps agrave latteindre et ce dernier peut aussi ecirctre instable si lasservissement est mal reacutegleacute

Lasservissement quon va utiliser ici est un classique PIDou plus preacuteciseacutement un PI car pour des raisons de vitesses de traitement la composante deacuteriveacutee est laisseacutee de coteacute (mais rien de difficile agrave rajouter)

Le PID ou Proportionnel Inteacutegrale Deacuteriveacute est une meacutethode de calcul dasservissement

Soit Kp Ki et Kd les coefficients proportionnels inteacutegrale et deacuteriveacuteSoit e lerreur Vitesse mesureacutee moins vitesse demandeacuteeSoit Ti le terme inteacutegral dabord initialiseacute agrave 0

Consigne a appliquer (PWM) = Kp e + (1Ki) (Ti += e) + Kd (e - e(t-1))

On pourrait dire des pages et des pages sur le PID et ce nest pas mon but ici Merci de vous reporter au lien ci-dessous

Pour plus de deacutetails sur le PID la page de lANCR httpwwwancrorgfichtechactionpidindexhtmChez les Fribottes la Simulation de Jean-Claude httpwwwwikifreefrWiKiFriindexphpSimulateur20de20PID

e Le pic

Le PIC est un petit microcontrocircleur assez bon marche et simple a programmer comme a utiliser

La aussi je vais pas rentrer dans les deacutetails vous pouvez vous reporter agrave la bdtech du site Fribotte et en particulier aux cours de Bigonoff

Le PIC est ici programmeacute en C voir la page Fribotte ici Lutilisation du langage C permet dalleacuteger consideacuterablement le deacuteveloppement dune application compliqueacutee

2 Module AVR

httpwwwenseirbfr~matzfravrphp

Tregraves peu de renseignement sur ce module sinon ces informations drsquoun eacutetudiant de lrsquoEnseirb

Depuis plusieurs anneacutees je participe agrave la coupe de robotique E=M6 dont lobjectif pour chaque eacutequipe est de fabriquer un robot autonome devant se conformer agrave un regraveglement Pour plus dinfos vous pouvez vous rendre sur le site de mon eacutequipe Microb Technology ou bien sur le site de Planegravete Sciences lorganisme beacuteneacutevole qui organise cette compeacutetition

Jai deacutecouvert en 2001 les microcontrocircleurs Atmel AVR auxquels je me suis beaucoup attacheacute dune part parce quils sont assez performants pour des microcontrocircleurs 8 bits mais aussi et surtout car le fameux compilateur libre GCC est capable de compiler du code C pour ces petites becirctes Il existe de surcroicirct plusieurs outils libres permettant de les programmer de les simuler etc

Le but de ce projet est donc de deacutevelopper des modules servant dinterface geacuteneacuterique avec le hardware du microcontrocircleur quel que soit la version (par exemple les UART inclus dans les AVR AtMega sont diffeacuterents de ceux preacutesents dans les petits AVR) et de deacutevelopper des modules utiles pour certaines utilisations usuelles et pas seulement pour la coupe E=M6 (codage de hamming asservissement chiffrement etc)

Vous pouvez contacter leacutequipe de deacuteveloppement agrave avr-devdroids-corporg Pour le moment aucune release na eacuteteacute faite mais le travail est deacutejagrave bien avanceacute Chaque soir un screenshot du CVS est reacutealiseacute Il peut ne pas compiler mais normalement ccedila devrait fonctionner Voici le lien

3 Modules drsquoasservissement analogique laquo Escap raquo

Nous avons essayeacute de reacutecupeacuterer les cartes de commande Escap pour moteurs Escap qui avaient eacuteteacute utiliseacutees en 96 et 98 avec succegraves

Nous les avons monteacutes sur une base roulante qui pesait en tout 74 kgVoici grosso-modo leurs avantages et leurs inconveacutenients (pour les notices techniques voir le rapport 96 ou 98)

a Avantages

Cette carte inclut directement un asservissement avec correcteur PI la commande de puissance les ponts en H

Elle est tregraves facile agrave utiliser Elle est speacutecialement conccedilue pour les moteurs Escap que nous avons donc

parfaitement adapteacutee

b Inconveacutenients

Les moteurs ne fonctionnent correctement que sous 24v Les cartes et les moteurs semblent assez gourment Les cartes nantis de gros radiateurs sont relativement encombrantes Les tachymegravetres monteacutes sur les moteurs ne donnent pas une indication de position

mais de vitesse (qui plus est en analogique)

Nous avons preacutefeacutereacute refaire la partie commande car celle de 1996 souffrait de quelques deacutefauts (cf rapport 1996)

La conversion numeacuterique analogique

Pour reacutealiser la conversion numeacuterique analogique nous avons choisit un pont agrave reacutesistance R-2R

Nous pouvons consideacuterer que chaque bit est relieacute agrave un geacuteneacuterateur ideacuteal de tension (qui deacutelivre 0v ou 5v) Par conseacutequent la reacutesistance eacutequivalente quelque soit lrsquoeacutetat des bits et quelques soit le nombre de bits vue entre la sortie et la masse sera eacutegal agrave R

La tension Vs en fonction de lrsquoeacutetat des bits sera

Ce type de CAN eacutetant tregraves classique nous nrsquoindiquerons pas les deacutemonstrations toutefois vous pourrez les trouver tregraves facilement sur Internet ou sur le Cd-rom drsquoannexes joint au dossier

Le montage de Thevenin eacutequivalent est donc

Nous avons jugeacute qursquoune discreacutetisation sur 8 bits eacutetait un peu superflu crsquoest pourquoi nous nous contenterons de 4 bits (ce qui repreacutesentent quand mecircme 16 niveaux de vitesse)

bull Lrsquoadaptation du niveau de tension

Nous avons agrave la sortie du CAN une tension qui srsquoeacutetend de 0 agrave 5v or la commande des cartes Escap ce fait entre -5v et +5v

On peut voir cette adaptation comme lrsquoajout drsquoun offset de -25v et une amplification de gain 2

Voici le montage reacutealisant cette conversion

M1 est un montage suiveur qui lsquorecopiersquo la tension aux bornes de P1 mais sous une impeacutedance constante et eacutegale agrave 4R En 1996 lrsquoeacutequipe avait brancheacute P1 directement sur M3 mais cela a pour inconveacutenient de faire varier agrave la fois lrsquooffset et la penteLe potentiomegravetre P1 permet drsquoajuster lrsquooffset (permet par conseacutequent de reacutegler lrsquoarrecirct complet de moteur) (La valeur theacuteorique de lrsquooffset est 5V (cf formule en M3))

M2 est aussi un montage suiveur Le potentiomegravetre P2 permet drsquoajuster la pente (qui doit avoir un coefficient directeur de 2) Comme M2 est connecteacute au CAN dont la reacutesistance interne est de R P2 doit ecirctre a peut precirct eacutegal agrave R de la sorte la branche aura une reacutesistance eacutequivalente de 2R

M3 Sommateur (Vs = - 2 (Ve + Voffset))

Qursquoelle valeur choisir pour R

Theacuteoriquement on peut choisir nrsquoimporte quelle valeur pour R mais en pratique si R est trop petite une intensiteacute importante serait consommeacutee sans raison et si R est trop grande la forte impeacutedance du montage le rendra tregraves sensible aux parasites (secteur moteurshellip)Ce montage a eacuteteacute testeacute et fonctionne correctement pour R=5k les amplificateurs opeacuterationnels utiliseacutes sont des LM324 mais drsquoautres seraient tout agrave fait envisageables (peu de contraintes de vitesse et de tensions de deacutechets)

4 Conclusion

Nous avons preacutefeacutereacute ne pas utiliser les cartes Escap car les moteurs ne renvoient pas une position sous forme drsquoimpulsion mais une vitesse Etant donneacute que nous avions envisageacute un repeacuterage par odomeacutetrie cela compliquait consideacuterablement la tache

Toutefois il faut savoir que cette solution a eacuteteacute testeacutee et fonctionne tregraves bien (bonne preacutecision bonne dynamique) ainsi dans le cas ougrave le repeacuterage ne se fait pas par odomeacutetrie mais des balises exteacuterieures sachez que cette solution est tregraves pratique agrave utiliser En effet pour imposer une vitesse il suffit au microcontrocircleur drsquoappliquer sur un port un mot binaire correspondant agrave la vitesse voulue hellip et crsquoest tout La carte Escap se charge du reste

5 Carte drsquoasservissement numeacuterique laquo artisanale raquo

La carte reacutealiseacutee baseacutee sur un microcontrocircleur PIC 16F877A srsquoest aveacutereacutee fonctionnelle mais les tests drsquoalgorithmes drsquoasservissement nrsquoont pas eacuteteacute effectueacutesEn effet lrsquoutilisation de cette solution neacutecessite un microcontrocircleur deacutedieacute agrave lrsquoasservissement capable de communiquer via un protocole agrave deacutefinir avec la laquo carte megravere raquo (centralisant les retours des autres capteurs du robot et agissant sur les diffeacuterents actionneurs en fonction de la strateacutegie)Or afin de limiter le nombre de microcontrocircleurs sur le robot et du fait que lrsquoon dispose drsquoun budget suffisant nous avons deacutecideacute drsquoessayer drsquoutiliser des composants speacuteciaux reacutealisant lrsquoasservissement

Le systegraveme se deacutecompose en

- Un microcontrocircleur pour appliquer la PWM asservir et commander- Une carte de puissance pour chaque moteur baseacutee sur un LMD18200- Une carte compteur drsquoimpulsions pour les codeurs

Afin de favoriser lrsquointeractiviteacute et les reacuteglages jrsquoai ajouteacute une carte afficheur LCD avec 6 boutons sur la carte microcontrocircleur

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 36: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

Les reacuteglages suggeacutereacutes par la meacutethode freacutequentielle de Ziegler Nichols sont reacutecapituleacutes dans le tableau suivant

Kp Ti Td

correcteur P 05 K0 - -correcteur PI 045 K0 08 T0 -

correcteur PID 06 K0 05 T0 0125 T0

A la page Internet suivante vous trouverez un simulateur de cette meacutethode

httpwww-hadocensieginpgfrhadocateliersreglageEmpCorrReglEmpCorrDroithtml

g Meacutethode de lrsquooptimum dyssimeacutetique (voir poly MC06 Chap 5 et 8)

Cette meacutethode srsquoapplique une fois le modegravele reacutealiseacute et mis sous la forme drsquoun second ordre

et on obtient le correcteur PI

pour une surtension deacutesireacutee QdB

Q = 10^(QdB20)λ= radic(Qsup2(Qsup2-1))Δφ = arcos (1 λ)α= ((1+sin(Δφ))cos(Δφ))sup2ωN= ωQαω0= ωQradicαKP= ω0 λ KQ

4 Les microcontrocircleurs

a Avant propos

Cette fiche se veut ecirctre sous la forme dun projet Un projet non termineacute ougrave chacun peut apporter sa contribution (ameacuteliorations adaptations corrections etc)De ce fait ces pages sont ameneacutees agrave eacutevoluer et vous-mecircme pourrez participer agrave leur eacutevolution

Pourquoi avoir choisit un tel mode de travail Tout simplement parce que le sujet est vaste et que des variations sont possibles suivant lutilisation quen feront les diffeacuterentes personnes

Le but de ce projet est de reacutealiser une double asservissement de vitesse (type PID) de deux moteurs sur un seul PIC (type 16F877) Lutiliteacute majeure eacutetant de faire rouler un robot bien droit et agrave la bonne vitesse A quoi ccedila sert plus preacuteciseacutement

Avec un seul PIC ce projet permet aux roboticiens amateurs et chevronneacutes de reacutealiser facilement leur asservissement de vitesse de moteurs agrave courant continu (en geacuteneacuteral les moteurs de propulsions de leur robot mais ccedila peut ecirctre bien sucircr dautres moteurs) La commande de lasservissement pourra se faire agrave terme en liaison seacuterie (deacutejagrave fait) I2C ou par bus ISA

b Avantages

Il existe bien sucircr dautres systegravemes qui gegraverent un asservissement de vitesses Des systegravemes professionnels existent comme les LM629 Ils ont linconveacutenient decirctre cher (et ce pour un seul moteur) et relativement complexes

Pourquoi chercher un fusil pour chasser des moustiques Le double asservissement sur PIC vous coucircte le prix dun PIC soit environ 15Euro pour un 16F877 actuellement et ce pour 2 moteurs Ce double asservissement se veut relativement simple De plus vous pouvez en modifier le programme et ladapter agrave vos besoins

c Inconveacutenients

Les personnes qui auront les moyens preacutefeacutererons opter pour un systegraveme professionnel certainement pour des raisons de fiabiliteacute mais cest agrave leurs risques et peacuterils -)La puissance du PIC eacutetant limiteacutee il ne peut pas reacutealiser des PID trop rapides ou trop complexes Il y a en particulier une limitation sur le nombre dimpulsions par seconde quil est capable de geacuterer

Le langage utiliseacute eacutetant le C il faut une licence du logiciel pour pouvoir modifier et recompiler le code source c Mais le projet se veut geacuteneacuterique Une version donneacutee pourra ecirctre utiliseacute sans recompilation en respectant quelques contraintes

d Asservissement

En fait on pourrait imaginer quil suffirait denvoyer au moteur une puissance constante pour quil tourne tout le temps agrave la mecircme vitesse Ce nest pas vrai du tout Tout dabord 2 moteurs dune mecircme seacuterie nauront pas forceacutement le mecircme comportement Ensuite parce que les niveaux de tension ou dautre diffeacuterences eacutelectriques peuvent jouer Enfin parce que des influences exteacuterieures (obstacles frein meacutecanique du robot) peuvent jouer

Du coup il est tregraves difficile de faire aller un moteur agrave la vitesse voulue Parfois ce nest pas gecircnant mais ccedila peut lecirctre Un exemple classique est le robot avec 2 roues motrices type char une configuration qui est tregraves courante Mais pour que ce robot aille droit il faut que les 2 moteurs aillent exactement agrave la mecircme vitesse

La solution est de faire un asservissement Cest a dire moduler dynamiquement la puissance envoyeacute aux moteurs suivant leur vitesse mesureacutee afin dadapter celle-ci agrave ce qui est deacutesireacuteeCela implique un eacuteleacutement tregraves important pour asservir il faut un capteur de vitesse du moteur En geacuteneacuteral il sagit dun compte-tour qui enverra N impulsions (ou pas) par tour de moteur Ensuite un programme va calculer en fonction de la vitesse mesureacutee du moteur la puissance agrave utiliser

Les asservissements sont constamment en train de chercher leacutequilibre Il faut bien comprendre quils mettent un certain temps agrave latteindre et ce dernier peut aussi ecirctre instable si lasservissement est mal reacutegleacute

Lasservissement quon va utiliser ici est un classique PIDou plus preacuteciseacutement un PI car pour des raisons de vitesses de traitement la composante deacuteriveacutee est laisseacutee de coteacute (mais rien de difficile agrave rajouter)

Le PID ou Proportionnel Inteacutegrale Deacuteriveacute est une meacutethode de calcul dasservissement

Soit Kp Ki et Kd les coefficients proportionnels inteacutegrale et deacuteriveacuteSoit e lerreur Vitesse mesureacutee moins vitesse demandeacuteeSoit Ti le terme inteacutegral dabord initialiseacute agrave 0

Consigne a appliquer (PWM) = Kp e + (1Ki) (Ti += e) + Kd (e - e(t-1))

On pourrait dire des pages et des pages sur le PID et ce nest pas mon but ici Merci de vous reporter au lien ci-dessous

Pour plus de deacutetails sur le PID la page de lANCR httpwwwancrorgfichtechactionpidindexhtmChez les Fribottes la Simulation de Jean-Claude httpwwwwikifreefrWiKiFriindexphpSimulateur20de20PID

e Le pic

Le PIC est un petit microcontrocircleur assez bon marche et simple a programmer comme a utiliser

La aussi je vais pas rentrer dans les deacutetails vous pouvez vous reporter agrave la bdtech du site Fribotte et en particulier aux cours de Bigonoff

Le PIC est ici programmeacute en C voir la page Fribotte ici Lutilisation du langage C permet dalleacuteger consideacuterablement le deacuteveloppement dune application compliqueacutee

2 Module AVR

httpwwwenseirbfr~matzfravrphp

Tregraves peu de renseignement sur ce module sinon ces informations drsquoun eacutetudiant de lrsquoEnseirb

Depuis plusieurs anneacutees je participe agrave la coupe de robotique E=M6 dont lobjectif pour chaque eacutequipe est de fabriquer un robot autonome devant se conformer agrave un regraveglement Pour plus dinfos vous pouvez vous rendre sur le site de mon eacutequipe Microb Technology ou bien sur le site de Planegravete Sciences lorganisme beacuteneacutevole qui organise cette compeacutetition

Jai deacutecouvert en 2001 les microcontrocircleurs Atmel AVR auxquels je me suis beaucoup attacheacute dune part parce quils sont assez performants pour des microcontrocircleurs 8 bits mais aussi et surtout car le fameux compilateur libre GCC est capable de compiler du code C pour ces petites becirctes Il existe de surcroicirct plusieurs outils libres permettant de les programmer de les simuler etc

Le but de ce projet est donc de deacutevelopper des modules servant dinterface geacuteneacuterique avec le hardware du microcontrocircleur quel que soit la version (par exemple les UART inclus dans les AVR AtMega sont diffeacuterents de ceux preacutesents dans les petits AVR) et de deacutevelopper des modules utiles pour certaines utilisations usuelles et pas seulement pour la coupe E=M6 (codage de hamming asservissement chiffrement etc)

Vous pouvez contacter leacutequipe de deacuteveloppement agrave avr-devdroids-corporg Pour le moment aucune release na eacuteteacute faite mais le travail est deacutejagrave bien avanceacute Chaque soir un screenshot du CVS est reacutealiseacute Il peut ne pas compiler mais normalement ccedila devrait fonctionner Voici le lien

3 Modules drsquoasservissement analogique laquo Escap raquo

Nous avons essayeacute de reacutecupeacuterer les cartes de commande Escap pour moteurs Escap qui avaient eacuteteacute utiliseacutees en 96 et 98 avec succegraves

Nous les avons monteacutes sur une base roulante qui pesait en tout 74 kgVoici grosso-modo leurs avantages et leurs inconveacutenients (pour les notices techniques voir le rapport 96 ou 98)

a Avantages

Cette carte inclut directement un asservissement avec correcteur PI la commande de puissance les ponts en H

Elle est tregraves facile agrave utiliser Elle est speacutecialement conccedilue pour les moteurs Escap que nous avons donc

parfaitement adapteacutee

b Inconveacutenients

Les moteurs ne fonctionnent correctement que sous 24v Les cartes et les moteurs semblent assez gourment Les cartes nantis de gros radiateurs sont relativement encombrantes Les tachymegravetres monteacutes sur les moteurs ne donnent pas une indication de position

mais de vitesse (qui plus est en analogique)

Nous avons preacutefeacutereacute refaire la partie commande car celle de 1996 souffrait de quelques deacutefauts (cf rapport 1996)

La conversion numeacuterique analogique

Pour reacutealiser la conversion numeacuterique analogique nous avons choisit un pont agrave reacutesistance R-2R

Nous pouvons consideacuterer que chaque bit est relieacute agrave un geacuteneacuterateur ideacuteal de tension (qui deacutelivre 0v ou 5v) Par conseacutequent la reacutesistance eacutequivalente quelque soit lrsquoeacutetat des bits et quelques soit le nombre de bits vue entre la sortie et la masse sera eacutegal agrave R

La tension Vs en fonction de lrsquoeacutetat des bits sera

Ce type de CAN eacutetant tregraves classique nous nrsquoindiquerons pas les deacutemonstrations toutefois vous pourrez les trouver tregraves facilement sur Internet ou sur le Cd-rom drsquoannexes joint au dossier

Le montage de Thevenin eacutequivalent est donc

Nous avons jugeacute qursquoune discreacutetisation sur 8 bits eacutetait un peu superflu crsquoest pourquoi nous nous contenterons de 4 bits (ce qui repreacutesentent quand mecircme 16 niveaux de vitesse)

bull Lrsquoadaptation du niveau de tension

Nous avons agrave la sortie du CAN une tension qui srsquoeacutetend de 0 agrave 5v or la commande des cartes Escap ce fait entre -5v et +5v

On peut voir cette adaptation comme lrsquoajout drsquoun offset de -25v et une amplification de gain 2

Voici le montage reacutealisant cette conversion

M1 est un montage suiveur qui lsquorecopiersquo la tension aux bornes de P1 mais sous une impeacutedance constante et eacutegale agrave 4R En 1996 lrsquoeacutequipe avait brancheacute P1 directement sur M3 mais cela a pour inconveacutenient de faire varier agrave la fois lrsquooffset et la penteLe potentiomegravetre P1 permet drsquoajuster lrsquooffset (permet par conseacutequent de reacutegler lrsquoarrecirct complet de moteur) (La valeur theacuteorique de lrsquooffset est 5V (cf formule en M3))

M2 est aussi un montage suiveur Le potentiomegravetre P2 permet drsquoajuster la pente (qui doit avoir un coefficient directeur de 2) Comme M2 est connecteacute au CAN dont la reacutesistance interne est de R P2 doit ecirctre a peut precirct eacutegal agrave R de la sorte la branche aura une reacutesistance eacutequivalente de 2R

M3 Sommateur (Vs = - 2 (Ve + Voffset))

Qursquoelle valeur choisir pour R

Theacuteoriquement on peut choisir nrsquoimporte quelle valeur pour R mais en pratique si R est trop petite une intensiteacute importante serait consommeacutee sans raison et si R est trop grande la forte impeacutedance du montage le rendra tregraves sensible aux parasites (secteur moteurshellip)Ce montage a eacuteteacute testeacute et fonctionne correctement pour R=5k les amplificateurs opeacuterationnels utiliseacutes sont des LM324 mais drsquoautres seraient tout agrave fait envisageables (peu de contraintes de vitesse et de tensions de deacutechets)

4 Conclusion

Nous avons preacutefeacutereacute ne pas utiliser les cartes Escap car les moteurs ne renvoient pas une position sous forme drsquoimpulsion mais une vitesse Etant donneacute que nous avions envisageacute un repeacuterage par odomeacutetrie cela compliquait consideacuterablement la tache

Toutefois il faut savoir que cette solution a eacuteteacute testeacutee et fonctionne tregraves bien (bonne preacutecision bonne dynamique) ainsi dans le cas ougrave le repeacuterage ne se fait pas par odomeacutetrie mais des balises exteacuterieures sachez que cette solution est tregraves pratique agrave utiliser En effet pour imposer une vitesse il suffit au microcontrocircleur drsquoappliquer sur un port un mot binaire correspondant agrave la vitesse voulue hellip et crsquoest tout La carte Escap se charge du reste

5 Carte drsquoasservissement numeacuterique laquo artisanale raquo

La carte reacutealiseacutee baseacutee sur un microcontrocircleur PIC 16F877A srsquoest aveacutereacutee fonctionnelle mais les tests drsquoalgorithmes drsquoasservissement nrsquoont pas eacuteteacute effectueacutesEn effet lrsquoutilisation de cette solution neacutecessite un microcontrocircleur deacutedieacute agrave lrsquoasservissement capable de communiquer via un protocole agrave deacutefinir avec la laquo carte megravere raquo (centralisant les retours des autres capteurs du robot et agissant sur les diffeacuterents actionneurs en fonction de la strateacutegie)Or afin de limiter le nombre de microcontrocircleurs sur le robot et du fait que lrsquoon dispose drsquoun budget suffisant nous avons deacutecideacute drsquoessayer drsquoutiliser des composants speacuteciaux reacutealisant lrsquoasservissement

Le systegraveme se deacutecompose en

- Un microcontrocircleur pour appliquer la PWM asservir et commander- Une carte de puissance pour chaque moteur baseacutee sur un LMD18200- Une carte compteur drsquoimpulsions pour les codeurs

Afin de favoriser lrsquointeractiviteacute et les reacuteglages jrsquoai ajouteacute une carte afficheur LCD avec 6 boutons sur la carte microcontrocircleur

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 37: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

4 Les microcontrocircleurs

a Avant propos

Cette fiche se veut ecirctre sous la forme dun projet Un projet non termineacute ougrave chacun peut apporter sa contribution (ameacuteliorations adaptations corrections etc)De ce fait ces pages sont ameneacutees agrave eacutevoluer et vous-mecircme pourrez participer agrave leur eacutevolution

Pourquoi avoir choisit un tel mode de travail Tout simplement parce que le sujet est vaste et que des variations sont possibles suivant lutilisation quen feront les diffeacuterentes personnes

Le but de ce projet est de reacutealiser une double asservissement de vitesse (type PID) de deux moteurs sur un seul PIC (type 16F877) Lutiliteacute majeure eacutetant de faire rouler un robot bien droit et agrave la bonne vitesse A quoi ccedila sert plus preacuteciseacutement

Avec un seul PIC ce projet permet aux roboticiens amateurs et chevronneacutes de reacutealiser facilement leur asservissement de vitesse de moteurs agrave courant continu (en geacuteneacuteral les moteurs de propulsions de leur robot mais ccedila peut ecirctre bien sucircr dautres moteurs) La commande de lasservissement pourra se faire agrave terme en liaison seacuterie (deacutejagrave fait) I2C ou par bus ISA

b Avantages

Il existe bien sucircr dautres systegravemes qui gegraverent un asservissement de vitesses Des systegravemes professionnels existent comme les LM629 Ils ont linconveacutenient decirctre cher (et ce pour un seul moteur) et relativement complexes

Pourquoi chercher un fusil pour chasser des moustiques Le double asservissement sur PIC vous coucircte le prix dun PIC soit environ 15Euro pour un 16F877 actuellement et ce pour 2 moteurs Ce double asservissement se veut relativement simple De plus vous pouvez en modifier le programme et ladapter agrave vos besoins

c Inconveacutenients

Les personnes qui auront les moyens preacutefeacutererons opter pour un systegraveme professionnel certainement pour des raisons de fiabiliteacute mais cest agrave leurs risques et peacuterils -)La puissance du PIC eacutetant limiteacutee il ne peut pas reacutealiser des PID trop rapides ou trop complexes Il y a en particulier une limitation sur le nombre dimpulsions par seconde quil est capable de geacuterer

Le langage utiliseacute eacutetant le C il faut une licence du logiciel pour pouvoir modifier et recompiler le code source c Mais le projet se veut geacuteneacuterique Une version donneacutee pourra ecirctre utiliseacute sans recompilation en respectant quelques contraintes

d Asservissement

En fait on pourrait imaginer quil suffirait denvoyer au moteur une puissance constante pour quil tourne tout le temps agrave la mecircme vitesse Ce nest pas vrai du tout Tout dabord 2 moteurs dune mecircme seacuterie nauront pas forceacutement le mecircme comportement Ensuite parce que les niveaux de tension ou dautre diffeacuterences eacutelectriques peuvent jouer Enfin parce que des influences exteacuterieures (obstacles frein meacutecanique du robot) peuvent jouer

Du coup il est tregraves difficile de faire aller un moteur agrave la vitesse voulue Parfois ce nest pas gecircnant mais ccedila peut lecirctre Un exemple classique est le robot avec 2 roues motrices type char une configuration qui est tregraves courante Mais pour que ce robot aille droit il faut que les 2 moteurs aillent exactement agrave la mecircme vitesse

La solution est de faire un asservissement Cest a dire moduler dynamiquement la puissance envoyeacute aux moteurs suivant leur vitesse mesureacutee afin dadapter celle-ci agrave ce qui est deacutesireacuteeCela implique un eacuteleacutement tregraves important pour asservir il faut un capteur de vitesse du moteur En geacuteneacuteral il sagit dun compte-tour qui enverra N impulsions (ou pas) par tour de moteur Ensuite un programme va calculer en fonction de la vitesse mesureacutee du moteur la puissance agrave utiliser

Les asservissements sont constamment en train de chercher leacutequilibre Il faut bien comprendre quils mettent un certain temps agrave latteindre et ce dernier peut aussi ecirctre instable si lasservissement est mal reacutegleacute

Lasservissement quon va utiliser ici est un classique PIDou plus preacuteciseacutement un PI car pour des raisons de vitesses de traitement la composante deacuteriveacutee est laisseacutee de coteacute (mais rien de difficile agrave rajouter)

Le PID ou Proportionnel Inteacutegrale Deacuteriveacute est une meacutethode de calcul dasservissement

Soit Kp Ki et Kd les coefficients proportionnels inteacutegrale et deacuteriveacuteSoit e lerreur Vitesse mesureacutee moins vitesse demandeacuteeSoit Ti le terme inteacutegral dabord initialiseacute agrave 0

Consigne a appliquer (PWM) = Kp e + (1Ki) (Ti += e) + Kd (e - e(t-1))

On pourrait dire des pages et des pages sur le PID et ce nest pas mon but ici Merci de vous reporter au lien ci-dessous

Pour plus de deacutetails sur le PID la page de lANCR httpwwwancrorgfichtechactionpidindexhtmChez les Fribottes la Simulation de Jean-Claude httpwwwwikifreefrWiKiFriindexphpSimulateur20de20PID

e Le pic

Le PIC est un petit microcontrocircleur assez bon marche et simple a programmer comme a utiliser

La aussi je vais pas rentrer dans les deacutetails vous pouvez vous reporter agrave la bdtech du site Fribotte et en particulier aux cours de Bigonoff

Le PIC est ici programmeacute en C voir la page Fribotte ici Lutilisation du langage C permet dalleacuteger consideacuterablement le deacuteveloppement dune application compliqueacutee

2 Module AVR

httpwwwenseirbfr~matzfravrphp

Tregraves peu de renseignement sur ce module sinon ces informations drsquoun eacutetudiant de lrsquoEnseirb

Depuis plusieurs anneacutees je participe agrave la coupe de robotique E=M6 dont lobjectif pour chaque eacutequipe est de fabriquer un robot autonome devant se conformer agrave un regraveglement Pour plus dinfos vous pouvez vous rendre sur le site de mon eacutequipe Microb Technology ou bien sur le site de Planegravete Sciences lorganisme beacuteneacutevole qui organise cette compeacutetition

Jai deacutecouvert en 2001 les microcontrocircleurs Atmel AVR auxquels je me suis beaucoup attacheacute dune part parce quils sont assez performants pour des microcontrocircleurs 8 bits mais aussi et surtout car le fameux compilateur libre GCC est capable de compiler du code C pour ces petites becirctes Il existe de surcroicirct plusieurs outils libres permettant de les programmer de les simuler etc

Le but de ce projet est donc de deacutevelopper des modules servant dinterface geacuteneacuterique avec le hardware du microcontrocircleur quel que soit la version (par exemple les UART inclus dans les AVR AtMega sont diffeacuterents de ceux preacutesents dans les petits AVR) et de deacutevelopper des modules utiles pour certaines utilisations usuelles et pas seulement pour la coupe E=M6 (codage de hamming asservissement chiffrement etc)

Vous pouvez contacter leacutequipe de deacuteveloppement agrave avr-devdroids-corporg Pour le moment aucune release na eacuteteacute faite mais le travail est deacutejagrave bien avanceacute Chaque soir un screenshot du CVS est reacutealiseacute Il peut ne pas compiler mais normalement ccedila devrait fonctionner Voici le lien

3 Modules drsquoasservissement analogique laquo Escap raquo

Nous avons essayeacute de reacutecupeacuterer les cartes de commande Escap pour moteurs Escap qui avaient eacuteteacute utiliseacutees en 96 et 98 avec succegraves

Nous les avons monteacutes sur une base roulante qui pesait en tout 74 kgVoici grosso-modo leurs avantages et leurs inconveacutenients (pour les notices techniques voir le rapport 96 ou 98)

a Avantages

Cette carte inclut directement un asservissement avec correcteur PI la commande de puissance les ponts en H

Elle est tregraves facile agrave utiliser Elle est speacutecialement conccedilue pour les moteurs Escap que nous avons donc

parfaitement adapteacutee

b Inconveacutenients

Les moteurs ne fonctionnent correctement que sous 24v Les cartes et les moteurs semblent assez gourment Les cartes nantis de gros radiateurs sont relativement encombrantes Les tachymegravetres monteacutes sur les moteurs ne donnent pas une indication de position

mais de vitesse (qui plus est en analogique)

Nous avons preacutefeacutereacute refaire la partie commande car celle de 1996 souffrait de quelques deacutefauts (cf rapport 1996)

La conversion numeacuterique analogique

Pour reacutealiser la conversion numeacuterique analogique nous avons choisit un pont agrave reacutesistance R-2R

Nous pouvons consideacuterer que chaque bit est relieacute agrave un geacuteneacuterateur ideacuteal de tension (qui deacutelivre 0v ou 5v) Par conseacutequent la reacutesistance eacutequivalente quelque soit lrsquoeacutetat des bits et quelques soit le nombre de bits vue entre la sortie et la masse sera eacutegal agrave R

La tension Vs en fonction de lrsquoeacutetat des bits sera

Ce type de CAN eacutetant tregraves classique nous nrsquoindiquerons pas les deacutemonstrations toutefois vous pourrez les trouver tregraves facilement sur Internet ou sur le Cd-rom drsquoannexes joint au dossier

Le montage de Thevenin eacutequivalent est donc

Nous avons jugeacute qursquoune discreacutetisation sur 8 bits eacutetait un peu superflu crsquoest pourquoi nous nous contenterons de 4 bits (ce qui repreacutesentent quand mecircme 16 niveaux de vitesse)

bull Lrsquoadaptation du niveau de tension

Nous avons agrave la sortie du CAN une tension qui srsquoeacutetend de 0 agrave 5v or la commande des cartes Escap ce fait entre -5v et +5v

On peut voir cette adaptation comme lrsquoajout drsquoun offset de -25v et une amplification de gain 2

Voici le montage reacutealisant cette conversion

M1 est un montage suiveur qui lsquorecopiersquo la tension aux bornes de P1 mais sous une impeacutedance constante et eacutegale agrave 4R En 1996 lrsquoeacutequipe avait brancheacute P1 directement sur M3 mais cela a pour inconveacutenient de faire varier agrave la fois lrsquooffset et la penteLe potentiomegravetre P1 permet drsquoajuster lrsquooffset (permet par conseacutequent de reacutegler lrsquoarrecirct complet de moteur) (La valeur theacuteorique de lrsquooffset est 5V (cf formule en M3))

M2 est aussi un montage suiveur Le potentiomegravetre P2 permet drsquoajuster la pente (qui doit avoir un coefficient directeur de 2) Comme M2 est connecteacute au CAN dont la reacutesistance interne est de R P2 doit ecirctre a peut precirct eacutegal agrave R de la sorte la branche aura une reacutesistance eacutequivalente de 2R

M3 Sommateur (Vs = - 2 (Ve + Voffset))

Qursquoelle valeur choisir pour R

Theacuteoriquement on peut choisir nrsquoimporte quelle valeur pour R mais en pratique si R est trop petite une intensiteacute importante serait consommeacutee sans raison et si R est trop grande la forte impeacutedance du montage le rendra tregraves sensible aux parasites (secteur moteurshellip)Ce montage a eacuteteacute testeacute et fonctionne correctement pour R=5k les amplificateurs opeacuterationnels utiliseacutes sont des LM324 mais drsquoautres seraient tout agrave fait envisageables (peu de contraintes de vitesse et de tensions de deacutechets)

4 Conclusion

Nous avons preacutefeacutereacute ne pas utiliser les cartes Escap car les moteurs ne renvoient pas une position sous forme drsquoimpulsion mais une vitesse Etant donneacute que nous avions envisageacute un repeacuterage par odomeacutetrie cela compliquait consideacuterablement la tache

Toutefois il faut savoir que cette solution a eacuteteacute testeacutee et fonctionne tregraves bien (bonne preacutecision bonne dynamique) ainsi dans le cas ougrave le repeacuterage ne se fait pas par odomeacutetrie mais des balises exteacuterieures sachez que cette solution est tregraves pratique agrave utiliser En effet pour imposer une vitesse il suffit au microcontrocircleur drsquoappliquer sur un port un mot binaire correspondant agrave la vitesse voulue hellip et crsquoest tout La carte Escap se charge du reste

5 Carte drsquoasservissement numeacuterique laquo artisanale raquo

La carte reacutealiseacutee baseacutee sur un microcontrocircleur PIC 16F877A srsquoest aveacutereacutee fonctionnelle mais les tests drsquoalgorithmes drsquoasservissement nrsquoont pas eacuteteacute effectueacutesEn effet lrsquoutilisation de cette solution neacutecessite un microcontrocircleur deacutedieacute agrave lrsquoasservissement capable de communiquer via un protocole agrave deacutefinir avec la laquo carte megravere raquo (centralisant les retours des autres capteurs du robot et agissant sur les diffeacuterents actionneurs en fonction de la strateacutegie)Or afin de limiter le nombre de microcontrocircleurs sur le robot et du fait que lrsquoon dispose drsquoun budget suffisant nous avons deacutecideacute drsquoessayer drsquoutiliser des composants speacuteciaux reacutealisant lrsquoasservissement

Le systegraveme se deacutecompose en

- Un microcontrocircleur pour appliquer la PWM asservir et commander- Une carte de puissance pour chaque moteur baseacutee sur un LMD18200- Une carte compteur drsquoimpulsions pour les codeurs

Afin de favoriser lrsquointeractiviteacute et les reacuteglages jrsquoai ajouteacute une carte afficheur LCD avec 6 boutons sur la carte microcontrocircleur

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 38: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

d Asservissement

En fait on pourrait imaginer quil suffirait denvoyer au moteur une puissance constante pour quil tourne tout le temps agrave la mecircme vitesse Ce nest pas vrai du tout Tout dabord 2 moteurs dune mecircme seacuterie nauront pas forceacutement le mecircme comportement Ensuite parce que les niveaux de tension ou dautre diffeacuterences eacutelectriques peuvent jouer Enfin parce que des influences exteacuterieures (obstacles frein meacutecanique du robot) peuvent jouer

Du coup il est tregraves difficile de faire aller un moteur agrave la vitesse voulue Parfois ce nest pas gecircnant mais ccedila peut lecirctre Un exemple classique est le robot avec 2 roues motrices type char une configuration qui est tregraves courante Mais pour que ce robot aille droit il faut que les 2 moteurs aillent exactement agrave la mecircme vitesse

La solution est de faire un asservissement Cest a dire moduler dynamiquement la puissance envoyeacute aux moteurs suivant leur vitesse mesureacutee afin dadapter celle-ci agrave ce qui est deacutesireacuteeCela implique un eacuteleacutement tregraves important pour asservir il faut un capteur de vitesse du moteur En geacuteneacuteral il sagit dun compte-tour qui enverra N impulsions (ou pas) par tour de moteur Ensuite un programme va calculer en fonction de la vitesse mesureacutee du moteur la puissance agrave utiliser

Les asservissements sont constamment en train de chercher leacutequilibre Il faut bien comprendre quils mettent un certain temps agrave latteindre et ce dernier peut aussi ecirctre instable si lasservissement est mal reacutegleacute

Lasservissement quon va utiliser ici est un classique PIDou plus preacuteciseacutement un PI car pour des raisons de vitesses de traitement la composante deacuteriveacutee est laisseacutee de coteacute (mais rien de difficile agrave rajouter)

Le PID ou Proportionnel Inteacutegrale Deacuteriveacute est une meacutethode de calcul dasservissement

Soit Kp Ki et Kd les coefficients proportionnels inteacutegrale et deacuteriveacuteSoit e lerreur Vitesse mesureacutee moins vitesse demandeacuteeSoit Ti le terme inteacutegral dabord initialiseacute agrave 0

Consigne a appliquer (PWM) = Kp e + (1Ki) (Ti += e) + Kd (e - e(t-1))

On pourrait dire des pages et des pages sur le PID et ce nest pas mon but ici Merci de vous reporter au lien ci-dessous

Pour plus de deacutetails sur le PID la page de lANCR httpwwwancrorgfichtechactionpidindexhtmChez les Fribottes la Simulation de Jean-Claude httpwwwwikifreefrWiKiFriindexphpSimulateur20de20PID

e Le pic

Le PIC est un petit microcontrocircleur assez bon marche et simple a programmer comme a utiliser

La aussi je vais pas rentrer dans les deacutetails vous pouvez vous reporter agrave la bdtech du site Fribotte et en particulier aux cours de Bigonoff

Le PIC est ici programmeacute en C voir la page Fribotte ici Lutilisation du langage C permet dalleacuteger consideacuterablement le deacuteveloppement dune application compliqueacutee

2 Module AVR

httpwwwenseirbfr~matzfravrphp

Tregraves peu de renseignement sur ce module sinon ces informations drsquoun eacutetudiant de lrsquoEnseirb

Depuis plusieurs anneacutees je participe agrave la coupe de robotique E=M6 dont lobjectif pour chaque eacutequipe est de fabriquer un robot autonome devant se conformer agrave un regraveglement Pour plus dinfos vous pouvez vous rendre sur le site de mon eacutequipe Microb Technology ou bien sur le site de Planegravete Sciences lorganisme beacuteneacutevole qui organise cette compeacutetition

Jai deacutecouvert en 2001 les microcontrocircleurs Atmel AVR auxquels je me suis beaucoup attacheacute dune part parce quils sont assez performants pour des microcontrocircleurs 8 bits mais aussi et surtout car le fameux compilateur libre GCC est capable de compiler du code C pour ces petites becirctes Il existe de surcroicirct plusieurs outils libres permettant de les programmer de les simuler etc

Le but de ce projet est donc de deacutevelopper des modules servant dinterface geacuteneacuterique avec le hardware du microcontrocircleur quel que soit la version (par exemple les UART inclus dans les AVR AtMega sont diffeacuterents de ceux preacutesents dans les petits AVR) et de deacutevelopper des modules utiles pour certaines utilisations usuelles et pas seulement pour la coupe E=M6 (codage de hamming asservissement chiffrement etc)

Vous pouvez contacter leacutequipe de deacuteveloppement agrave avr-devdroids-corporg Pour le moment aucune release na eacuteteacute faite mais le travail est deacutejagrave bien avanceacute Chaque soir un screenshot du CVS est reacutealiseacute Il peut ne pas compiler mais normalement ccedila devrait fonctionner Voici le lien

3 Modules drsquoasservissement analogique laquo Escap raquo

Nous avons essayeacute de reacutecupeacuterer les cartes de commande Escap pour moteurs Escap qui avaient eacuteteacute utiliseacutees en 96 et 98 avec succegraves

Nous les avons monteacutes sur une base roulante qui pesait en tout 74 kgVoici grosso-modo leurs avantages et leurs inconveacutenients (pour les notices techniques voir le rapport 96 ou 98)

a Avantages

Cette carte inclut directement un asservissement avec correcteur PI la commande de puissance les ponts en H

Elle est tregraves facile agrave utiliser Elle est speacutecialement conccedilue pour les moteurs Escap que nous avons donc

parfaitement adapteacutee

b Inconveacutenients

Les moteurs ne fonctionnent correctement que sous 24v Les cartes et les moteurs semblent assez gourment Les cartes nantis de gros radiateurs sont relativement encombrantes Les tachymegravetres monteacutes sur les moteurs ne donnent pas une indication de position

mais de vitesse (qui plus est en analogique)

Nous avons preacutefeacutereacute refaire la partie commande car celle de 1996 souffrait de quelques deacutefauts (cf rapport 1996)

La conversion numeacuterique analogique

Pour reacutealiser la conversion numeacuterique analogique nous avons choisit un pont agrave reacutesistance R-2R

Nous pouvons consideacuterer que chaque bit est relieacute agrave un geacuteneacuterateur ideacuteal de tension (qui deacutelivre 0v ou 5v) Par conseacutequent la reacutesistance eacutequivalente quelque soit lrsquoeacutetat des bits et quelques soit le nombre de bits vue entre la sortie et la masse sera eacutegal agrave R

La tension Vs en fonction de lrsquoeacutetat des bits sera

Ce type de CAN eacutetant tregraves classique nous nrsquoindiquerons pas les deacutemonstrations toutefois vous pourrez les trouver tregraves facilement sur Internet ou sur le Cd-rom drsquoannexes joint au dossier

Le montage de Thevenin eacutequivalent est donc

Nous avons jugeacute qursquoune discreacutetisation sur 8 bits eacutetait un peu superflu crsquoest pourquoi nous nous contenterons de 4 bits (ce qui repreacutesentent quand mecircme 16 niveaux de vitesse)

bull Lrsquoadaptation du niveau de tension

Nous avons agrave la sortie du CAN une tension qui srsquoeacutetend de 0 agrave 5v or la commande des cartes Escap ce fait entre -5v et +5v

On peut voir cette adaptation comme lrsquoajout drsquoun offset de -25v et une amplification de gain 2

Voici le montage reacutealisant cette conversion

M1 est un montage suiveur qui lsquorecopiersquo la tension aux bornes de P1 mais sous une impeacutedance constante et eacutegale agrave 4R En 1996 lrsquoeacutequipe avait brancheacute P1 directement sur M3 mais cela a pour inconveacutenient de faire varier agrave la fois lrsquooffset et la penteLe potentiomegravetre P1 permet drsquoajuster lrsquooffset (permet par conseacutequent de reacutegler lrsquoarrecirct complet de moteur) (La valeur theacuteorique de lrsquooffset est 5V (cf formule en M3))

M2 est aussi un montage suiveur Le potentiomegravetre P2 permet drsquoajuster la pente (qui doit avoir un coefficient directeur de 2) Comme M2 est connecteacute au CAN dont la reacutesistance interne est de R P2 doit ecirctre a peut precirct eacutegal agrave R de la sorte la branche aura une reacutesistance eacutequivalente de 2R

M3 Sommateur (Vs = - 2 (Ve + Voffset))

Qursquoelle valeur choisir pour R

Theacuteoriquement on peut choisir nrsquoimporte quelle valeur pour R mais en pratique si R est trop petite une intensiteacute importante serait consommeacutee sans raison et si R est trop grande la forte impeacutedance du montage le rendra tregraves sensible aux parasites (secteur moteurshellip)Ce montage a eacuteteacute testeacute et fonctionne correctement pour R=5k les amplificateurs opeacuterationnels utiliseacutes sont des LM324 mais drsquoautres seraient tout agrave fait envisageables (peu de contraintes de vitesse et de tensions de deacutechets)

4 Conclusion

Nous avons preacutefeacutereacute ne pas utiliser les cartes Escap car les moteurs ne renvoient pas une position sous forme drsquoimpulsion mais une vitesse Etant donneacute que nous avions envisageacute un repeacuterage par odomeacutetrie cela compliquait consideacuterablement la tache

Toutefois il faut savoir que cette solution a eacuteteacute testeacutee et fonctionne tregraves bien (bonne preacutecision bonne dynamique) ainsi dans le cas ougrave le repeacuterage ne se fait pas par odomeacutetrie mais des balises exteacuterieures sachez que cette solution est tregraves pratique agrave utiliser En effet pour imposer une vitesse il suffit au microcontrocircleur drsquoappliquer sur un port un mot binaire correspondant agrave la vitesse voulue hellip et crsquoest tout La carte Escap se charge du reste

5 Carte drsquoasservissement numeacuterique laquo artisanale raquo

La carte reacutealiseacutee baseacutee sur un microcontrocircleur PIC 16F877A srsquoest aveacutereacutee fonctionnelle mais les tests drsquoalgorithmes drsquoasservissement nrsquoont pas eacuteteacute effectueacutesEn effet lrsquoutilisation de cette solution neacutecessite un microcontrocircleur deacutedieacute agrave lrsquoasservissement capable de communiquer via un protocole agrave deacutefinir avec la laquo carte megravere raquo (centralisant les retours des autres capteurs du robot et agissant sur les diffeacuterents actionneurs en fonction de la strateacutegie)Or afin de limiter le nombre de microcontrocircleurs sur le robot et du fait que lrsquoon dispose drsquoun budget suffisant nous avons deacutecideacute drsquoessayer drsquoutiliser des composants speacuteciaux reacutealisant lrsquoasservissement

Le systegraveme se deacutecompose en

- Un microcontrocircleur pour appliquer la PWM asservir et commander- Une carte de puissance pour chaque moteur baseacutee sur un LMD18200- Une carte compteur drsquoimpulsions pour les codeurs

Afin de favoriser lrsquointeractiviteacute et les reacuteglages jrsquoai ajouteacute une carte afficheur LCD avec 6 boutons sur la carte microcontrocircleur

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 39: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

e Le pic

Le PIC est un petit microcontrocircleur assez bon marche et simple a programmer comme a utiliser

La aussi je vais pas rentrer dans les deacutetails vous pouvez vous reporter agrave la bdtech du site Fribotte et en particulier aux cours de Bigonoff

Le PIC est ici programmeacute en C voir la page Fribotte ici Lutilisation du langage C permet dalleacuteger consideacuterablement le deacuteveloppement dune application compliqueacutee

2 Module AVR

httpwwwenseirbfr~matzfravrphp

Tregraves peu de renseignement sur ce module sinon ces informations drsquoun eacutetudiant de lrsquoEnseirb

Depuis plusieurs anneacutees je participe agrave la coupe de robotique E=M6 dont lobjectif pour chaque eacutequipe est de fabriquer un robot autonome devant se conformer agrave un regraveglement Pour plus dinfos vous pouvez vous rendre sur le site de mon eacutequipe Microb Technology ou bien sur le site de Planegravete Sciences lorganisme beacuteneacutevole qui organise cette compeacutetition

Jai deacutecouvert en 2001 les microcontrocircleurs Atmel AVR auxquels je me suis beaucoup attacheacute dune part parce quils sont assez performants pour des microcontrocircleurs 8 bits mais aussi et surtout car le fameux compilateur libre GCC est capable de compiler du code C pour ces petites becirctes Il existe de surcroicirct plusieurs outils libres permettant de les programmer de les simuler etc

Le but de ce projet est donc de deacutevelopper des modules servant dinterface geacuteneacuterique avec le hardware du microcontrocircleur quel que soit la version (par exemple les UART inclus dans les AVR AtMega sont diffeacuterents de ceux preacutesents dans les petits AVR) et de deacutevelopper des modules utiles pour certaines utilisations usuelles et pas seulement pour la coupe E=M6 (codage de hamming asservissement chiffrement etc)

Vous pouvez contacter leacutequipe de deacuteveloppement agrave avr-devdroids-corporg Pour le moment aucune release na eacuteteacute faite mais le travail est deacutejagrave bien avanceacute Chaque soir un screenshot du CVS est reacutealiseacute Il peut ne pas compiler mais normalement ccedila devrait fonctionner Voici le lien

3 Modules drsquoasservissement analogique laquo Escap raquo

Nous avons essayeacute de reacutecupeacuterer les cartes de commande Escap pour moteurs Escap qui avaient eacuteteacute utiliseacutees en 96 et 98 avec succegraves

Nous les avons monteacutes sur une base roulante qui pesait en tout 74 kgVoici grosso-modo leurs avantages et leurs inconveacutenients (pour les notices techniques voir le rapport 96 ou 98)

a Avantages

Cette carte inclut directement un asservissement avec correcteur PI la commande de puissance les ponts en H

Elle est tregraves facile agrave utiliser Elle est speacutecialement conccedilue pour les moteurs Escap que nous avons donc

parfaitement adapteacutee

b Inconveacutenients

Les moteurs ne fonctionnent correctement que sous 24v Les cartes et les moteurs semblent assez gourment Les cartes nantis de gros radiateurs sont relativement encombrantes Les tachymegravetres monteacutes sur les moteurs ne donnent pas une indication de position

mais de vitesse (qui plus est en analogique)

Nous avons preacutefeacutereacute refaire la partie commande car celle de 1996 souffrait de quelques deacutefauts (cf rapport 1996)

La conversion numeacuterique analogique

Pour reacutealiser la conversion numeacuterique analogique nous avons choisit un pont agrave reacutesistance R-2R

Nous pouvons consideacuterer que chaque bit est relieacute agrave un geacuteneacuterateur ideacuteal de tension (qui deacutelivre 0v ou 5v) Par conseacutequent la reacutesistance eacutequivalente quelque soit lrsquoeacutetat des bits et quelques soit le nombre de bits vue entre la sortie et la masse sera eacutegal agrave R

La tension Vs en fonction de lrsquoeacutetat des bits sera

Ce type de CAN eacutetant tregraves classique nous nrsquoindiquerons pas les deacutemonstrations toutefois vous pourrez les trouver tregraves facilement sur Internet ou sur le Cd-rom drsquoannexes joint au dossier

Le montage de Thevenin eacutequivalent est donc

Nous avons jugeacute qursquoune discreacutetisation sur 8 bits eacutetait un peu superflu crsquoest pourquoi nous nous contenterons de 4 bits (ce qui repreacutesentent quand mecircme 16 niveaux de vitesse)

bull Lrsquoadaptation du niveau de tension

Nous avons agrave la sortie du CAN une tension qui srsquoeacutetend de 0 agrave 5v or la commande des cartes Escap ce fait entre -5v et +5v

On peut voir cette adaptation comme lrsquoajout drsquoun offset de -25v et une amplification de gain 2

Voici le montage reacutealisant cette conversion

M1 est un montage suiveur qui lsquorecopiersquo la tension aux bornes de P1 mais sous une impeacutedance constante et eacutegale agrave 4R En 1996 lrsquoeacutequipe avait brancheacute P1 directement sur M3 mais cela a pour inconveacutenient de faire varier agrave la fois lrsquooffset et la penteLe potentiomegravetre P1 permet drsquoajuster lrsquooffset (permet par conseacutequent de reacutegler lrsquoarrecirct complet de moteur) (La valeur theacuteorique de lrsquooffset est 5V (cf formule en M3))

M2 est aussi un montage suiveur Le potentiomegravetre P2 permet drsquoajuster la pente (qui doit avoir un coefficient directeur de 2) Comme M2 est connecteacute au CAN dont la reacutesistance interne est de R P2 doit ecirctre a peut precirct eacutegal agrave R de la sorte la branche aura une reacutesistance eacutequivalente de 2R

M3 Sommateur (Vs = - 2 (Ve + Voffset))

Qursquoelle valeur choisir pour R

Theacuteoriquement on peut choisir nrsquoimporte quelle valeur pour R mais en pratique si R est trop petite une intensiteacute importante serait consommeacutee sans raison et si R est trop grande la forte impeacutedance du montage le rendra tregraves sensible aux parasites (secteur moteurshellip)Ce montage a eacuteteacute testeacute et fonctionne correctement pour R=5k les amplificateurs opeacuterationnels utiliseacutes sont des LM324 mais drsquoautres seraient tout agrave fait envisageables (peu de contraintes de vitesse et de tensions de deacutechets)

4 Conclusion

Nous avons preacutefeacutereacute ne pas utiliser les cartes Escap car les moteurs ne renvoient pas une position sous forme drsquoimpulsion mais une vitesse Etant donneacute que nous avions envisageacute un repeacuterage par odomeacutetrie cela compliquait consideacuterablement la tache

Toutefois il faut savoir que cette solution a eacuteteacute testeacutee et fonctionne tregraves bien (bonne preacutecision bonne dynamique) ainsi dans le cas ougrave le repeacuterage ne se fait pas par odomeacutetrie mais des balises exteacuterieures sachez que cette solution est tregraves pratique agrave utiliser En effet pour imposer une vitesse il suffit au microcontrocircleur drsquoappliquer sur un port un mot binaire correspondant agrave la vitesse voulue hellip et crsquoest tout La carte Escap se charge du reste

5 Carte drsquoasservissement numeacuterique laquo artisanale raquo

La carte reacutealiseacutee baseacutee sur un microcontrocircleur PIC 16F877A srsquoest aveacutereacutee fonctionnelle mais les tests drsquoalgorithmes drsquoasservissement nrsquoont pas eacuteteacute effectueacutesEn effet lrsquoutilisation de cette solution neacutecessite un microcontrocircleur deacutedieacute agrave lrsquoasservissement capable de communiquer via un protocole agrave deacutefinir avec la laquo carte megravere raquo (centralisant les retours des autres capteurs du robot et agissant sur les diffeacuterents actionneurs en fonction de la strateacutegie)Or afin de limiter le nombre de microcontrocircleurs sur le robot et du fait que lrsquoon dispose drsquoun budget suffisant nous avons deacutecideacute drsquoessayer drsquoutiliser des composants speacuteciaux reacutealisant lrsquoasservissement

Le systegraveme se deacutecompose en

- Un microcontrocircleur pour appliquer la PWM asservir et commander- Une carte de puissance pour chaque moteur baseacutee sur un LMD18200- Une carte compteur drsquoimpulsions pour les codeurs

Afin de favoriser lrsquointeractiviteacute et les reacuteglages jrsquoai ajouteacute une carte afficheur LCD avec 6 boutons sur la carte microcontrocircleur

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 40: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

3 Modules drsquoasservissement analogique laquo Escap raquo

Nous avons essayeacute de reacutecupeacuterer les cartes de commande Escap pour moteurs Escap qui avaient eacuteteacute utiliseacutees en 96 et 98 avec succegraves

Nous les avons monteacutes sur une base roulante qui pesait en tout 74 kgVoici grosso-modo leurs avantages et leurs inconveacutenients (pour les notices techniques voir le rapport 96 ou 98)

a Avantages

Cette carte inclut directement un asservissement avec correcteur PI la commande de puissance les ponts en H

Elle est tregraves facile agrave utiliser Elle est speacutecialement conccedilue pour les moteurs Escap que nous avons donc

parfaitement adapteacutee

b Inconveacutenients

Les moteurs ne fonctionnent correctement que sous 24v Les cartes et les moteurs semblent assez gourment Les cartes nantis de gros radiateurs sont relativement encombrantes Les tachymegravetres monteacutes sur les moteurs ne donnent pas une indication de position

mais de vitesse (qui plus est en analogique)

Nous avons preacutefeacutereacute refaire la partie commande car celle de 1996 souffrait de quelques deacutefauts (cf rapport 1996)

La conversion numeacuterique analogique

Pour reacutealiser la conversion numeacuterique analogique nous avons choisit un pont agrave reacutesistance R-2R

Nous pouvons consideacuterer que chaque bit est relieacute agrave un geacuteneacuterateur ideacuteal de tension (qui deacutelivre 0v ou 5v) Par conseacutequent la reacutesistance eacutequivalente quelque soit lrsquoeacutetat des bits et quelques soit le nombre de bits vue entre la sortie et la masse sera eacutegal agrave R

La tension Vs en fonction de lrsquoeacutetat des bits sera

Ce type de CAN eacutetant tregraves classique nous nrsquoindiquerons pas les deacutemonstrations toutefois vous pourrez les trouver tregraves facilement sur Internet ou sur le Cd-rom drsquoannexes joint au dossier

Le montage de Thevenin eacutequivalent est donc

Nous avons jugeacute qursquoune discreacutetisation sur 8 bits eacutetait un peu superflu crsquoest pourquoi nous nous contenterons de 4 bits (ce qui repreacutesentent quand mecircme 16 niveaux de vitesse)

bull Lrsquoadaptation du niveau de tension

Nous avons agrave la sortie du CAN une tension qui srsquoeacutetend de 0 agrave 5v or la commande des cartes Escap ce fait entre -5v et +5v

On peut voir cette adaptation comme lrsquoajout drsquoun offset de -25v et une amplification de gain 2

Voici le montage reacutealisant cette conversion

M1 est un montage suiveur qui lsquorecopiersquo la tension aux bornes de P1 mais sous une impeacutedance constante et eacutegale agrave 4R En 1996 lrsquoeacutequipe avait brancheacute P1 directement sur M3 mais cela a pour inconveacutenient de faire varier agrave la fois lrsquooffset et la penteLe potentiomegravetre P1 permet drsquoajuster lrsquooffset (permet par conseacutequent de reacutegler lrsquoarrecirct complet de moteur) (La valeur theacuteorique de lrsquooffset est 5V (cf formule en M3))

M2 est aussi un montage suiveur Le potentiomegravetre P2 permet drsquoajuster la pente (qui doit avoir un coefficient directeur de 2) Comme M2 est connecteacute au CAN dont la reacutesistance interne est de R P2 doit ecirctre a peut precirct eacutegal agrave R de la sorte la branche aura une reacutesistance eacutequivalente de 2R

M3 Sommateur (Vs = - 2 (Ve + Voffset))

Qursquoelle valeur choisir pour R

Theacuteoriquement on peut choisir nrsquoimporte quelle valeur pour R mais en pratique si R est trop petite une intensiteacute importante serait consommeacutee sans raison et si R est trop grande la forte impeacutedance du montage le rendra tregraves sensible aux parasites (secteur moteurshellip)Ce montage a eacuteteacute testeacute et fonctionne correctement pour R=5k les amplificateurs opeacuterationnels utiliseacutes sont des LM324 mais drsquoautres seraient tout agrave fait envisageables (peu de contraintes de vitesse et de tensions de deacutechets)

4 Conclusion

Nous avons preacutefeacutereacute ne pas utiliser les cartes Escap car les moteurs ne renvoient pas une position sous forme drsquoimpulsion mais une vitesse Etant donneacute que nous avions envisageacute un repeacuterage par odomeacutetrie cela compliquait consideacuterablement la tache

Toutefois il faut savoir que cette solution a eacuteteacute testeacutee et fonctionne tregraves bien (bonne preacutecision bonne dynamique) ainsi dans le cas ougrave le repeacuterage ne se fait pas par odomeacutetrie mais des balises exteacuterieures sachez que cette solution est tregraves pratique agrave utiliser En effet pour imposer une vitesse il suffit au microcontrocircleur drsquoappliquer sur un port un mot binaire correspondant agrave la vitesse voulue hellip et crsquoest tout La carte Escap se charge du reste

5 Carte drsquoasservissement numeacuterique laquo artisanale raquo

La carte reacutealiseacutee baseacutee sur un microcontrocircleur PIC 16F877A srsquoest aveacutereacutee fonctionnelle mais les tests drsquoalgorithmes drsquoasservissement nrsquoont pas eacuteteacute effectueacutesEn effet lrsquoutilisation de cette solution neacutecessite un microcontrocircleur deacutedieacute agrave lrsquoasservissement capable de communiquer via un protocole agrave deacutefinir avec la laquo carte megravere raquo (centralisant les retours des autres capteurs du robot et agissant sur les diffeacuterents actionneurs en fonction de la strateacutegie)Or afin de limiter le nombre de microcontrocircleurs sur le robot et du fait que lrsquoon dispose drsquoun budget suffisant nous avons deacutecideacute drsquoessayer drsquoutiliser des composants speacuteciaux reacutealisant lrsquoasservissement

Le systegraveme se deacutecompose en

- Un microcontrocircleur pour appliquer la PWM asservir et commander- Une carte de puissance pour chaque moteur baseacutee sur un LMD18200- Une carte compteur drsquoimpulsions pour les codeurs

Afin de favoriser lrsquointeractiviteacute et les reacuteglages jrsquoai ajouteacute une carte afficheur LCD avec 6 boutons sur la carte microcontrocircleur

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 41: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

La conversion numeacuterique analogique

Pour reacutealiser la conversion numeacuterique analogique nous avons choisit un pont agrave reacutesistance R-2R

Nous pouvons consideacuterer que chaque bit est relieacute agrave un geacuteneacuterateur ideacuteal de tension (qui deacutelivre 0v ou 5v) Par conseacutequent la reacutesistance eacutequivalente quelque soit lrsquoeacutetat des bits et quelques soit le nombre de bits vue entre la sortie et la masse sera eacutegal agrave R

La tension Vs en fonction de lrsquoeacutetat des bits sera

Ce type de CAN eacutetant tregraves classique nous nrsquoindiquerons pas les deacutemonstrations toutefois vous pourrez les trouver tregraves facilement sur Internet ou sur le Cd-rom drsquoannexes joint au dossier

Le montage de Thevenin eacutequivalent est donc

Nous avons jugeacute qursquoune discreacutetisation sur 8 bits eacutetait un peu superflu crsquoest pourquoi nous nous contenterons de 4 bits (ce qui repreacutesentent quand mecircme 16 niveaux de vitesse)

bull Lrsquoadaptation du niveau de tension

Nous avons agrave la sortie du CAN une tension qui srsquoeacutetend de 0 agrave 5v or la commande des cartes Escap ce fait entre -5v et +5v

On peut voir cette adaptation comme lrsquoajout drsquoun offset de -25v et une amplification de gain 2

Voici le montage reacutealisant cette conversion

M1 est un montage suiveur qui lsquorecopiersquo la tension aux bornes de P1 mais sous une impeacutedance constante et eacutegale agrave 4R En 1996 lrsquoeacutequipe avait brancheacute P1 directement sur M3 mais cela a pour inconveacutenient de faire varier agrave la fois lrsquooffset et la penteLe potentiomegravetre P1 permet drsquoajuster lrsquooffset (permet par conseacutequent de reacutegler lrsquoarrecirct complet de moteur) (La valeur theacuteorique de lrsquooffset est 5V (cf formule en M3))

M2 est aussi un montage suiveur Le potentiomegravetre P2 permet drsquoajuster la pente (qui doit avoir un coefficient directeur de 2) Comme M2 est connecteacute au CAN dont la reacutesistance interne est de R P2 doit ecirctre a peut precirct eacutegal agrave R de la sorte la branche aura une reacutesistance eacutequivalente de 2R

M3 Sommateur (Vs = - 2 (Ve + Voffset))

Qursquoelle valeur choisir pour R

Theacuteoriquement on peut choisir nrsquoimporte quelle valeur pour R mais en pratique si R est trop petite une intensiteacute importante serait consommeacutee sans raison et si R est trop grande la forte impeacutedance du montage le rendra tregraves sensible aux parasites (secteur moteurshellip)Ce montage a eacuteteacute testeacute et fonctionne correctement pour R=5k les amplificateurs opeacuterationnels utiliseacutes sont des LM324 mais drsquoautres seraient tout agrave fait envisageables (peu de contraintes de vitesse et de tensions de deacutechets)

4 Conclusion

Nous avons preacutefeacutereacute ne pas utiliser les cartes Escap car les moteurs ne renvoient pas une position sous forme drsquoimpulsion mais une vitesse Etant donneacute que nous avions envisageacute un repeacuterage par odomeacutetrie cela compliquait consideacuterablement la tache

Toutefois il faut savoir que cette solution a eacuteteacute testeacutee et fonctionne tregraves bien (bonne preacutecision bonne dynamique) ainsi dans le cas ougrave le repeacuterage ne se fait pas par odomeacutetrie mais des balises exteacuterieures sachez que cette solution est tregraves pratique agrave utiliser En effet pour imposer une vitesse il suffit au microcontrocircleur drsquoappliquer sur un port un mot binaire correspondant agrave la vitesse voulue hellip et crsquoest tout La carte Escap se charge du reste

5 Carte drsquoasservissement numeacuterique laquo artisanale raquo

La carte reacutealiseacutee baseacutee sur un microcontrocircleur PIC 16F877A srsquoest aveacutereacutee fonctionnelle mais les tests drsquoalgorithmes drsquoasservissement nrsquoont pas eacuteteacute effectueacutesEn effet lrsquoutilisation de cette solution neacutecessite un microcontrocircleur deacutedieacute agrave lrsquoasservissement capable de communiquer via un protocole agrave deacutefinir avec la laquo carte megravere raquo (centralisant les retours des autres capteurs du robot et agissant sur les diffeacuterents actionneurs en fonction de la strateacutegie)Or afin de limiter le nombre de microcontrocircleurs sur le robot et du fait que lrsquoon dispose drsquoun budget suffisant nous avons deacutecideacute drsquoessayer drsquoutiliser des composants speacuteciaux reacutealisant lrsquoasservissement

Le systegraveme se deacutecompose en

- Un microcontrocircleur pour appliquer la PWM asservir et commander- Une carte de puissance pour chaque moteur baseacutee sur un LMD18200- Une carte compteur drsquoimpulsions pour les codeurs

Afin de favoriser lrsquointeractiviteacute et les reacuteglages jrsquoai ajouteacute une carte afficheur LCD avec 6 boutons sur la carte microcontrocircleur

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 42: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

Le montage de Thevenin eacutequivalent est donc

Nous avons jugeacute qursquoune discreacutetisation sur 8 bits eacutetait un peu superflu crsquoest pourquoi nous nous contenterons de 4 bits (ce qui repreacutesentent quand mecircme 16 niveaux de vitesse)

bull Lrsquoadaptation du niveau de tension

Nous avons agrave la sortie du CAN une tension qui srsquoeacutetend de 0 agrave 5v or la commande des cartes Escap ce fait entre -5v et +5v

On peut voir cette adaptation comme lrsquoajout drsquoun offset de -25v et une amplification de gain 2

Voici le montage reacutealisant cette conversion

M1 est un montage suiveur qui lsquorecopiersquo la tension aux bornes de P1 mais sous une impeacutedance constante et eacutegale agrave 4R En 1996 lrsquoeacutequipe avait brancheacute P1 directement sur M3 mais cela a pour inconveacutenient de faire varier agrave la fois lrsquooffset et la penteLe potentiomegravetre P1 permet drsquoajuster lrsquooffset (permet par conseacutequent de reacutegler lrsquoarrecirct complet de moteur) (La valeur theacuteorique de lrsquooffset est 5V (cf formule en M3))

M2 est aussi un montage suiveur Le potentiomegravetre P2 permet drsquoajuster la pente (qui doit avoir un coefficient directeur de 2) Comme M2 est connecteacute au CAN dont la reacutesistance interne est de R P2 doit ecirctre a peut precirct eacutegal agrave R de la sorte la branche aura une reacutesistance eacutequivalente de 2R

M3 Sommateur (Vs = - 2 (Ve + Voffset))

Qursquoelle valeur choisir pour R

Theacuteoriquement on peut choisir nrsquoimporte quelle valeur pour R mais en pratique si R est trop petite une intensiteacute importante serait consommeacutee sans raison et si R est trop grande la forte impeacutedance du montage le rendra tregraves sensible aux parasites (secteur moteurshellip)Ce montage a eacuteteacute testeacute et fonctionne correctement pour R=5k les amplificateurs opeacuterationnels utiliseacutes sont des LM324 mais drsquoautres seraient tout agrave fait envisageables (peu de contraintes de vitesse et de tensions de deacutechets)

4 Conclusion

Nous avons preacutefeacutereacute ne pas utiliser les cartes Escap car les moteurs ne renvoient pas une position sous forme drsquoimpulsion mais une vitesse Etant donneacute que nous avions envisageacute un repeacuterage par odomeacutetrie cela compliquait consideacuterablement la tache

Toutefois il faut savoir que cette solution a eacuteteacute testeacutee et fonctionne tregraves bien (bonne preacutecision bonne dynamique) ainsi dans le cas ougrave le repeacuterage ne se fait pas par odomeacutetrie mais des balises exteacuterieures sachez que cette solution est tregraves pratique agrave utiliser En effet pour imposer une vitesse il suffit au microcontrocircleur drsquoappliquer sur un port un mot binaire correspondant agrave la vitesse voulue hellip et crsquoest tout La carte Escap se charge du reste

5 Carte drsquoasservissement numeacuterique laquo artisanale raquo

La carte reacutealiseacutee baseacutee sur un microcontrocircleur PIC 16F877A srsquoest aveacutereacutee fonctionnelle mais les tests drsquoalgorithmes drsquoasservissement nrsquoont pas eacuteteacute effectueacutesEn effet lrsquoutilisation de cette solution neacutecessite un microcontrocircleur deacutedieacute agrave lrsquoasservissement capable de communiquer via un protocole agrave deacutefinir avec la laquo carte megravere raquo (centralisant les retours des autres capteurs du robot et agissant sur les diffeacuterents actionneurs en fonction de la strateacutegie)Or afin de limiter le nombre de microcontrocircleurs sur le robot et du fait que lrsquoon dispose drsquoun budget suffisant nous avons deacutecideacute drsquoessayer drsquoutiliser des composants speacuteciaux reacutealisant lrsquoasservissement

Le systegraveme se deacutecompose en

- Un microcontrocircleur pour appliquer la PWM asservir et commander- Une carte de puissance pour chaque moteur baseacutee sur un LMD18200- Une carte compteur drsquoimpulsions pour les codeurs

Afin de favoriser lrsquointeractiviteacute et les reacuteglages jrsquoai ajouteacute une carte afficheur LCD avec 6 boutons sur la carte microcontrocircleur

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 43: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

Voici le montage reacutealisant cette conversion

M1 est un montage suiveur qui lsquorecopiersquo la tension aux bornes de P1 mais sous une impeacutedance constante et eacutegale agrave 4R En 1996 lrsquoeacutequipe avait brancheacute P1 directement sur M3 mais cela a pour inconveacutenient de faire varier agrave la fois lrsquooffset et la penteLe potentiomegravetre P1 permet drsquoajuster lrsquooffset (permet par conseacutequent de reacutegler lrsquoarrecirct complet de moteur) (La valeur theacuteorique de lrsquooffset est 5V (cf formule en M3))

M2 est aussi un montage suiveur Le potentiomegravetre P2 permet drsquoajuster la pente (qui doit avoir un coefficient directeur de 2) Comme M2 est connecteacute au CAN dont la reacutesistance interne est de R P2 doit ecirctre a peut precirct eacutegal agrave R de la sorte la branche aura une reacutesistance eacutequivalente de 2R

M3 Sommateur (Vs = - 2 (Ve + Voffset))

Qursquoelle valeur choisir pour R

Theacuteoriquement on peut choisir nrsquoimporte quelle valeur pour R mais en pratique si R est trop petite une intensiteacute importante serait consommeacutee sans raison et si R est trop grande la forte impeacutedance du montage le rendra tregraves sensible aux parasites (secteur moteurshellip)Ce montage a eacuteteacute testeacute et fonctionne correctement pour R=5k les amplificateurs opeacuterationnels utiliseacutes sont des LM324 mais drsquoautres seraient tout agrave fait envisageables (peu de contraintes de vitesse et de tensions de deacutechets)

4 Conclusion

Nous avons preacutefeacutereacute ne pas utiliser les cartes Escap car les moteurs ne renvoient pas une position sous forme drsquoimpulsion mais une vitesse Etant donneacute que nous avions envisageacute un repeacuterage par odomeacutetrie cela compliquait consideacuterablement la tache

Toutefois il faut savoir que cette solution a eacuteteacute testeacutee et fonctionne tregraves bien (bonne preacutecision bonne dynamique) ainsi dans le cas ougrave le repeacuterage ne se fait pas par odomeacutetrie mais des balises exteacuterieures sachez que cette solution est tregraves pratique agrave utiliser En effet pour imposer une vitesse il suffit au microcontrocircleur drsquoappliquer sur un port un mot binaire correspondant agrave la vitesse voulue hellip et crsquoest tout La carte Escap se charge du reste

5 Carte drsquoasservissement numeacuterique laquo artisanale raquo

La carte reacutealiseacutee baseacutee sur un microcontrocircleur PIC 16F877A srsquoest aveacutereacutee fonctionnelle mais les tests drsquoalgorithmes drsquoasservissement nrsquoont pas eacuteteacute effectueacutesEn effet lrsquoutilisation de cette solution neacutecessite un microcontrocircleur deacutedieacute agrave lrsquoasservissement capable de communiquer via un protocole agrave deacutefinir avec la laquo carte megravere raquo (centralisant les retours des autres capteurs du robot et agissant sur les diffeacuterents actionneurs en fonction de la strateacutegie)Or afin de limiter le nombre de microcontrocircleurs sur le robot et du fait que lrsquoon dispose drsquoun budget suffisant nous avons deacutecideacute drsquoessayer drsquoutiliser des composants speacuteciaux reacutealisant lrsquoasservissement

Le systegraveme se deacutecompose en

- Un microcontrocircleur pour appliquer la PWM asservir et commander- Une carte de puissance pour chaque moteur baseacutee sur un LMD18200- Une carte compteur drsquoimpulsions pour les codeurs

Afin de favoriser lrsquointeractiviteacute et les reacuteglages jrsquoai ajouteacute une carte afficheur LCD avec 6 boutons sur la carte microcontrocircleur

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 44: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

4 Conclusion

Nous avons preacutefeacutereacute ne pas utiliser les cartes Escap car les moteurs ne renvoient pas une position sous forme drsquoimpulsion mais une vitesse Etant donneacute que nous avions envisageacute un repeacuterage par odomeacutetrie cela compliquait consideacuterablement la tache

Toutefois il faut savoir que cette solution a eacuteteacute testeacutee et fonctionne tregraves bien (bonne preacutecision bonne dynamique) ainsi dans le cas ougrave le repeacuterage ne se fait pas par odomeacutetrie mais des balises exteacuterieures sachez que cette solution est tregraves pratique agrave utiliser En effet pour imposer une vitesse il suffit au microcontrocircleur drsquoappliquer sur un port un mot binaire correspondant agrave la vitesse voulue hellip et crsquoest tout La carte Escap se charge du reste

5 Carte drsquoasservissement numeacuterique laquo artisanale raquo

La carte reacutealiseacutee baseacutee sur un microcontrocircleur PIC 16F877A srsquoest aveacutereacutee fonctionnelle mais les tests drsquoalgorithmes drsquoasservissement nrsquoont pas eacuteteacute effectueacutesEn effet lrsquoutilisation de cette solution neacutecessite un microcontrocircleur deacutedieacute agrave lrsquoasservissement capable de communiquer via un protocole agrave deacutefinir avec la laquo carte megravere raquo (centralisant les retours des autres capteurs du robot et agissant sur les diffeacuterents actionneurs en fonction de la strateacutegie)Or afin de limiter le nombre de microcontrocircleurs sur le robot et du fait que lrsquoon dispose drsquoun budget suffisant nous avons deacutecideacute drsquoessayer drsquoutiliser des composants speacuteciaux reacutealisant lrsquoasservissement

Le systegraveme se deacutecompose en

- Un microcontrocircleur pour appliquer la PWM asservir et commander- Une carte de puissance pour chaque moteur baseacutee sur un LMD18200- Une carte compteur drsquoimpulsions pour les codeurs

Afin de favoriser lrsquointeractiviteacute et les reacuteglages jrsquoai ajouteacute une carte afficheur LCD avec 6 boutons sur la carte microcontrocircleur

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 45: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

6 Carte compteur drsquoimpulsions codeurs

Son rocircle est de deacutecharger le microC drsquoune tacircche simple mais qui demande toute la disponibiliteacute du microC au deacutetriment des autres fonctions de celui-ci ou avec le risque de rater des impulsions et drsquoavoir une fausse indication de vitesse

Conformeacutement au datasheet des codeurs HEDS5540 utiliseacutes il y a 3 reacutesistances de pull-up de 27KΩ ainsi que le compteur qui est un classique CMOS 4040

Tout le montage ainsi que les codeurs HEDS5540 fonctionnent en TTL ce qui permet de les brancher directement avec le microC

Scheacutema

Typon

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 46: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

7 Carte de puissance

Elle srsquoarticule autour du LMD18200 qui est un laquo pont en H raquo inteacutegrant une logique TTL (0V ou 5V) qui permet de le connecter directement agrave un microC ainsi que de le commander en PWM avec des peacuteriodes allant jusqursquoagrave 100KHz

Le LMD18200 peut commander des moteurs courant continu pour des tensions de 12 agrave 55V et des intensiteacutes jusqursquoagrave 3A nominal (et des pics de 6A sur 200ms)

Le LMD18200 inclut eacutegalement une sortie agrave miroir de courant (fournissant 377microAA et jusqursquoagrave 12V de tension connecteacute avec une reacutesistance de rappel agrave la masse) un laquo temperature flag raquo en logique inverse deacuteclenchant agrave 145degC ainsi que les bits de direction brake et PWM

Il est eacutegalement proteacuteger contre une surchauffe avec une laquo thermal shutdown raquo agrave 170degC

La commande peut ecirctre faite de 2 maniegraveres

_ Avec un bit pour la direction et la commande PWM variant drsquoun rapport de 0 agrave 100_ Avec le bit PWM au 1 logique et la commande PWM sur le bit direction de sorte qursquoun

rapport cyclique agrave 0 correspond au maximum dans un sens que 50 correspond au point mort et que 100 correspond au maximum dans lrsquoautre sens

Scheacutema

Typon

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 47: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

8 Carte microcontrocircleur

Il srsquoagit drsquoune banale carte agrave 16F877 en communication directe avec les autres cartes par liaison parallegravele

La carte LCD comprend les commandes classiques des LCD agrave interface 8bits commandeacute ici en mode 4bits en raison du nombre de broches disponible sur le 16F877

PIC 16F877(A) caracteacuteristiques

Meacutemoire Flash de 8KoctetsRAM de 368 octetsEeprom de 256 octets

5 MIPS (million drsquoinstructions par secondes)avec un quartz de 20 MHz

Le LCD possegravede 16 broches _ +5V et masse_ contraste_ RS (pour choisir entre commande et donneacutee)_ WR (pour lire ou eacutecrire sur le LCD)_ D0 agrave D7 pour envoyer ou recevoir les informations_ E (enable pour valider lrsquoenvoie ou la reacuteception)_ et deux broches pour le reacutetro-eacuteclairage quand il est preacutesent

Les bits RS et E du LCD ne peuvent pas se connecter sur RA4 et RA5 du fait que RA4 est une sortie agrave drain ouvert ce qui implique qursquoelle ne fournit pas de 5V TTL

Ces 2 bits ont donc eacuteteacutes brancheacutes sur RE0 et RE1 de sorte que RA4 RA5 et RE2 puisse facilement se reacuteunir en une information de 3 bits pour les boutons qui renvoient en binaire le numeacutero du bouton presseacuteEn effet si on prend les quartets MSB de RA et LSB de RE RA 0011

+ RE 0100 0111 (3 bits pour les

touches)RC1 et RC2 sont les sorties PWM incluent dans le PIC donc fixes

Jrsquoai preacutefeacutereacute choisir des ports entiers donc plus facile agrave lire pour relever les compteurs port B et port D

Les bits RC6 et RC7 appeleacute deacutemarrage carte puissance serve agrave pouvoir arrecircter ou nrsquoappliquer aucune consigne sur les moteurs temps que les PWM ne sont pas eacutetablies lors de lrsquoinitialisation du PIC

Et enfin les bits RC4 et RC5 servent agrave remettre agrave zeacutero les compteurs apregraves lecture

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 48: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

Avant drsquoaller plus loin voici le tableau de brochage du 16F877

broche port 16F877A fonction

1 2 RA0 LCD bit 43 RA1 LCD bit 54 RA2 LCD bit 65 RA3 LCD bit 76 RA4 Bouton 07 RA5 Bouton 18 RE0 LCD bit RS9 RE1 LCD bit E

10 RE2 Bouton 211 12 13 14 15 RC0 16 RC1 sortie PWM217 RC2 sortie PWM118 RC3 19 RD0 Compteur 1 bit 020 RD1 Compteur 1 bit 121 RD2 Compteur 1 bit 222 RD3 Compteur 1 bit 323 RC4 reset compteur 124 RC5 reset compteur 225 RC6 deacutemarrage carte puissance 126 RC7 deacutemarrage carte puissance 227 RD4 Compteur 1 bit 428 RD5 Compteur 1 bit 529 RD6 Compteur 1 bit 630 RD7 Compteur 1 bit 731 32 33 RB0 Compteur 2 bit 034 RB1 Compteur 2 bit 135 RB2 Compteur 2 bit 236 RB3 Compteur 2 bit 337 RB4 Compteur 2 bit 438 RB5 Compteur 2 bit 539 RB6 Compteur 2 bit 640 RB7 Compteur 2 bit 7

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 49: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

Typon de la carte laquo LCD-boutons raquo

Scheacutema de la connectique du LCD

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 50: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

Commande possible du LCD

RS RW RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Description00000000010

00000000101

00000001

BF--

0000001----

000001-----

00001

DL-----

0001

SCN-----

001D

RLF-----

01

IDC-----

1SB-----

Efface lafficheur et met le curseur au 1er caractegravereRemet le curseur en haut agrave gaucheDeacuteplacement du curseur apregraves apparition dun caractegravereOptions daffichage du curseurDeacutecalage du curseur ou de tout laffichageChoix 48 bits choix des lignes utiliseacutees et de la taille caractegraveresAdresse du geacuteneacuterateur de caractegraveresAdresse de la meacutemoire de donneacuteesLecture du busy flag et de ladresse de la position du curseurEcrire dans la meacutemoire de donneacutee ou le geacuteneacuterateur de caractegraveresLire donneacutees dans la meacutemoire ou le geacuteneacuterateur de caractegraveres

IDSDCB

SCRLDLNF

BF

0 deacuteplacement du curseur agrave gauche0 Laffichage ne se deacutecale pas0 Laffichage est deacutesactiveacute0 Le curseur ne se voit pas0 Le caractegravere actif ne clignote pas0 Deacuteplacement du curseur0 Deacutecallage vers la gauche0 Mode 4 bits0 Une ligne utiliseacutee0 Taille des caractegraveres = 570 Le LCD est precirct

1 deacuteplacement du curseur agrave droite1 Laffichage se deacutecale1 Laffichage est activeacute1 Le curseur se voit1 Le caractegravere actif clignote1 Deacuteplacement de laffichage1 Deacutecalage vers la droite1 Mode 8 bits1 Deux lignes utiliseacutees1 Taille des caractegraveres = 5101 Le LCD est occupeacute

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 51: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

9 Algorithme

Nous avons drsquoune part une lecture des codeurs toutes les ~820 micros qui nous informe de la vitesse de rotation des moteurs

Or les codeurs HEDS5540 renvoient 500 impulsions par tour or la sortie du moteur entraicircne un reacuteducteur 1332 avant drsquoentraicircner la roue

Pour un tour de roue on a donc 500 332 = 16600 impulsions par tour reacuteel de roueOr apregraves calcul on peut compter au maximum 312000 impulsions par secondes soit

pour des roues de 4cm de rayon une vitesse maximum de 47 ms =gt ce qui est largement supeacuterieur agrave la vitesse maximale reacuteelle des moteurs

Lrsquoasservissement doit se faire en boucle fermeacutee suivant le scheacutema

bull Ud vitesse deacutesireacutee bull e erreur entre la vitesse deacutesireacutee et la vitesse reacuteelle bull U Consigne appliqueacutee au moteur bull Y Vitesse reacuteelle

En ce qui concerne la programmation de lrsquoasservissement de maniegravere software il faudra proceacuteder suivant une deacutemarche similaire agrave celle deacutecrites preacuteceacutedemment dans la partie laquo Comparatifs des modules drsquoasservissement et calcul des correcteurs systegraveme PID raquo

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 52: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

10 Conclusion

Cette solution est envisageable et deacutejagrave utiliseacutee par diffeacuterentes associations de robotique

Le point le plus deacutelicat reste le calcul du correcteur par le microcontrocircleur qui reacuteclame une grande puissance et cela constamment et le plus rapidement possible pour que le systegraveme reste reacuteactif

Si cette solution est retenue il est neacutecessaire drsquoutiliser un microcontrocircleur deacutedieacute pour lrsquoasservissement et drsquoeacutetablir ensuite un protocole de communication avec la carte principale qui appliquera les consignes en fonction du parcours que dois faire le robot

11 Remarques

Lors des essais il y eut un problegraveme avec le port B sur la carte microcontrocircleur =gt il eacutetait causeacute par lrsquooption LVP (Low Voltage Programming) dans le registre du PIC 16F877A qursquoil faut veiller agrave deacutesactiver car dans le mode LVP la broche 3 du port B fait commuter ce dernier en mode programmation et stoppe le fonctionnement en cours

Suite agrave la perte drsquoun codeur apregraves une mauvaise manipulation nous nrsquoavons pas pu reacutealiser de tests de deacuteplacement avec asservissement =gt en revanche la commande des moteurs avec variation de vitesse eacutetait satisfaisante

Le LCD preacutesente quelques problegravemes drsquoaffichage propre agrave un deacutefaut de fabrication de celui recycleacute sur la carte LCD de tests =gt il faudrait un LCD neuf

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 53: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

12 Circuits drsquoasservissement numeacuterique laquo LM629 raquo

Nous avons reacutealiseacute une carte mettant en œuvre les circuits LM629Cette carte permet de rassembler les circuits inteacutegreacutes drsquoasservissement (LM629) et un

microcontrocircleur (PIC 16F877A) pour envoyer les commandes et interpreacuteter les reacutesultatsLa carte contient un reacutegulateur de tension (5V jusqursquoagrave 15 A) qui permet de fournir

une tension TTL de 5V afin drsquoalimenter les diffeacuterents circuits inteacutegreacutes PIC et LM629Un interrupteur nous permet de couper lrsquoalimentation du PIC de sorte que lrsquoon puisse

faire fonctionner le circuit drsquoasservissement avec un autre circuit de commande (autre microcontrocircleur externe)

Les LM629 sont cadenceacutes agrave leur vitesse maximale de 6MHz sachant qursquoil existe aussi des modegraveles agrave 8MHz mais qursquoils nrsquoeacutetaient pas disponibles au moment de la commande

On trouve eacutegalement un oscillateur 20MHz avec deux petits condensateurs pour fixer la freacutequence du microcontrocircleur PIC ainsi que des reacutesistances de pull-up pour les codeurs HEDS5540 comme preacuteconiseacute dans le datasheet

Enfin notons que la communication avec les deux LM629 se fait sur un bus commun et le choix drsquoadressage du LM629 souhaiteacute srsquoeffectue gracircce aux lignes CS (chip select) respectives

Lrsquoalimentation du circuit se fait directement sous 24 V et est reacutepartie aux interfaces de puissance

Les interfaces de puissance pour alimenter les moteurs sont des laquo pont en H raquo agrave LMD18200 comme deacutecrit preacuteceacutedemment dans la section laquo carte drsquoasservissement numeacuterique artisanal raquo

Les principaux avantages du circuit sont drsquoune part sa simpliciteacute technique du fait que tous les composants sont en TTL et peuvent donc se connecter directement entre eux et drsquoautre part sa puissance de calcul qui offre diffeacuterents types drsquoasservissement avec une tregraves grande preacutecision

Correspondance des bornes du microcontrocircleur PIC utiliseacute

Broches du PIC Broches du LM

RB 0 D0RB 1 D1RB 2 D2RB 3 D3RB 4 D4RB 5 D5RB 6 D6RB 7 D7RD 4 PSRD 5 HIRD 6 RDRD 7 CS 1RC 6 CS 2RC 7 WR

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 54: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

Typon

Photos

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 55: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

Les cacircbles de liaison aux codeurs de type HEDS5540 sont soudeacutes et precircts agrave ecirctre connecteacute (cacircble vert = GND) et les sorties P1 et P2 ainsi que les lignes PWM et signe des LM permettent de brancher du mecircme cocircteacute les cartes de puissances

Remarques _ preacutevoir plus de sorties +5V et GND pour brancher les cartes annexes drsquoessais (carte LCD)_ envisageacute de placer les reacutesistances de pull-up des codeurs HEDS5540 plus pregraves de ces derniers pour limiter au maximum les interfeacuterences_ temps de lectureeacutecriture minimum _ eacutecriture commande 160ns

_ eacutecriture donneacutee 250ns_ lecture donneacutee 330ns

13 Conclusion

Cette carte permet de rassembler de faccedilon pratique les composants neacutecessaires pour la mise en œuvre des circuits drsquoasservissement LM629

Elle nrsquoa eacuteteacute reacutealiseacutee que dans le cadre drsquoessai de la base roulante pour lrsquoUV PR et une nouvelle carte sera probablement imprimeacutee pour la compeacutetition de robotique de lrsquoassociation E=M6 avec une forme plus approprieacutee agrave la place disponible dans le robot et avec le choix deacutefinitif du microcontrocircleur de commande

On peut eacutegalement envisager drsquointeacutegrer sur la carte les interfaces de puissance agrave base de LMD 18200 afin de limiter la quantiteacute de cartes sur le robot et les diffeacuterentes connectiques qursquoimplique la communication entre ces cartes

14 Commande des circuits drsquoasservissement numeacuteriques laquo LM629 raquo

Cet asservissement repose sur le LM629 qui va faire une grosse partie du travail pour nous Ces circuits drsquoasservissement disposent drsquoun correcteur PID dont chaque paramegravetre (P I et D) sont ajustables numeacuteriquement

On peut lui fixer une consigne de vitesse ou de position ainsi qursquoune acceacuteleacuteration

Preacutesentation des principales broches

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 56: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

ClockFT 2048= ClockF

int ∆∆++=

T

Robot TeDdteIePV

0

Port bidirectionnel (D0 agrave D7)

Permet de lire les registres du LM (registres de vitesse de statutshellip) et drsquoenvoyer les commandes (assignation drsquoune vitesse deacutemarragehellip)

RDWR Ecriture ou lecture des registres A lrsquoeacutetat de lsquoreposrsquo ces bits doivent ecirctre agrave 1

PS Port select quand PS=0 on envoie une commande quand PS=1 on envoie une donneacutee

IN Index le codeur du moteur y envoie une impulsion par tour On veillera agrave mettre une reacutesistance de pull up

A B Impulsions en provenance du codeur

HI Signale une interruption (cest-agrave-dire un eacuteveacutenement particulier telle une opeacuteration non conforme un parcours fini une erreur trop grandehellip)

RST Reset (redeacutemarrage) du LM

CS (Chip Select) active le LM Ce bit nous a permis drsquoutiliser le mecircme port bidirectionnel pour commander les deux LM agrave la fois

Principe de fonctionnement

Le deacutemarrage

Au deacutemarrage ou apregraves un reset tous les registres (en 8 16 ou 32 bits) du LM sont nuls Ainsi la premiegravere eacutetape consiste agrave les configurer

1 Les registres du filtre PID

e lrsquoerreurT la peacuteriode drsquoeacutechantillonnage

Dans notre cas = 6MHz

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 57: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

Les coefficients P I et D sont codeacutes en 16 bits on peut donc leur assigner une valeur comprise entre 0 et 65535

2 Le chargement drsquoune trajectoire

La trajectoire est deacutefinie par son profil trapeacutezoiumldal cest agrave dire une acceacuteleacuteration une vitesse maximale une position agrave atteindre (uniquement en mode position)

Chacun de ces eacuteleacutements peut ecirctre deacutefini en absolu ou en relatif par rapport aux eacuteleacutements actuels cest agrave dire par rapport agrave

lacceacuteleacuteration actuelle la vitesse maximale de consigne actuelle la position agrave atteindre actuelle

Profil de vitesse trapeacutezoiumldal

Remarque Nous appelons COUNT le nombre dimpulsions du codeur4

La multiplication correspond agrave la meacutethode utiliseacutee par le LM pour deacutecoder les impulsions geacuteneacutereacutees par le codeur Pour une roue codeuse (codeur) ayant 500 points par tour le LM va deacutecoder 2000 impulsions (COUNT) par tour Cette uniteacute deacutepend donc du codeur utiliseacute En fonction du nombre de points du codeur par tour du montage meacutecanique un point du codeur peut repreacutesenter un deacuteplacement de x mm ou bien une rotation de x degreacutes etcLe compteur de position par exemple utilise le COUNT pour mesurer les deacuteplacements

Nous appellerons SAMPLE la peacuteriode drsquoeacutechantillonnage du LM

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 58: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

Dans le registre du LM les paramegravetres de trajectoire ont un codage speacutecifique

bull La position agrave atteindre est exprimeacutee par un nombre signeacute de 32 bits en C-OUNT bull La vitesse maximale est exprimeacutee par un nombre non signeacute en virgule fixe de 1616

bits en COUNTSAMPLE bull Lacceacuteleacuteration maximale est exprimeacutee par un nombre non signeacute en virgule fixe de

1616 bits en COUNTSAMPLESAMPLE

Pour chaque eacuteleacutement il nest pas possible dutiliser toutes les valeurs seule une plage de valeurs est possible

Donneacutee Plage autoriseacutee

Position De -2^30 agrave 2^30-1 soit 0xC0000000 agrave 0c3FFFFFFF ou encore de 1073741824 agrave 1073741823

Vitesse Toute la plage (0 agrave 6553699998 soit 0x00000000 agrave 0xFFFFFFFF)

Acceacuteleacuteration De 0 agrave 2^30-1 soit de 0 agrave 0x3FFFFFFF ou encore de 0 agrave 1638399998

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 59: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

Voici les formules qui permettent de trouver la correspondance entre ces uniteacutes et les grandeurs physiques (sachant que le codeur dont nous disposons deacutelivre 500 impulsions par tour et que nb_impulsion repreacutesente le nombre reacuteel drsquoimpulsion et que le moto reacuteducteur a un rapport 625 1)

Pour le deacuteplacement

2565002

4Roueimpulsion Rnb

d π=

Le nombre drsquoimpulsions eacutetant codeacute dans un registre 32 bits en code compleacutement agrave deux (pour pouvoir coder aussi des deacuteplacements neacutegatif) par conseacutequent

Nous pouvons coder un deacuteplacement maximum de plus ou mois 216 km

En effet

mdMax 215882565000402

41230

=minus= π

Avec un quantum theacuteorique de 002 mm

mdQuantum5

0

22565000402

42 minus== π

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 60: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

Pour la vitesse

2048

2565002

4ClockRoueimpulsion FRnb

v π=

Vitesse maximum 1072 Kmh (bien sucircr la vitesse maximum reacuteelle deacutependra du moteur utiliseacute

smvMax 38602048

1062565000402

4 8655369999 6

== π

Avec un quantum de 11710-17 ms

smvQuantum 101712048

1062565000402

42 17

616minus

minus

== π

Pour lrsquoacceacuteleacuteration

Acceacuteleacuteration maximale codable 2827433 ms2

2

2048

2565002

48163839999

= ClockRoue FRa π

Avec un quantum de 263 mms2

232-16

106322048

256500

24

2 smFRa ClockRoue minus=

= π

15 Conclusion

Ce composant peut donc servir dans un tregraves grand nombre drsquoapplication et avec une tregraves grande preacutecision theacuteorique En pratique la preacutecision deacutependra beaucoup de la partie meacutecanique du systegraveme

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 61: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

16 La carte megravere

a Choix de la carte microcontrocircleur

La carte centrale du robot doit ecirctre suffisamment puissante pour supporter des utilisations futures gourmandes en ressources Ainsi on pourra reacuteutiliser la mecircme danneacutee en anneacutee et eacuteconomiser du temps de deacuteveloppement et de lrsquoargent

Elle doit eacutegalement avoir assez dentreacutees-sorties et de bus pour pouvoir brancher tous les peacuteripheacuteriques

Puisque cest lorgane central du robot mieux vaut un microcontrocircleur accompagneacute de sa carte dont on sait quelle fonctionne tregraves bien

Enfin le prix de lensemble doit ecirctre raisonnable

Pour choisir cette carte nous avons eacutetudieacute les modegraveles de cartes pour les microcontrocircleurs suivants dont les descriptions deacutetailleacutees sont en annexes

bull Motorola HCS12 (MC9S12DP256B)bull Microchip PIC 18F458bull Rabbit (RCM3400)bull Proteebull PC104bull Hitachi SH-1

Il a finalement eacuteteacute deacutecideacute dacheter une T-board comme carte centrale et un PICdem2plus pour deacutevelopper des modules agrave base de PICs

b Programmation du microcontrocircleur HCS12 sur la carte T-Board

Une carte PICdem2plus et une carte T-Board

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 62: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

c Quelques deacutetails sur la carte HCS12 T-Board

La carte HCS12 T-Board peut ecirctre utiliseacutee telle quelle pour un deacuteveloppement direct (de part lexistence de son moniteur inteacutegreacute)Toutefois le module optionnel ComPod permet de teacuteleacutecharger plus rapidement le programme au sein de la carte tout en permettant de reacutecupeacuterer lespace meacutemoire attribueacute au moniteur

Si on ne veut pas utiliser lassembleur livreacute comme langage de programmation le compilateur optionnel ICC12 permet de deacutevelopper en C de faccedilon tregraves rapide et professionnelleEnfin loption NoIce (associeacutee au ComPod et agrave ICC12) permet de disposer dun environnement de deacuteveloppement puissant et convivial avec mode DEBUG (points darrecircts mode pas-agrave-pas etc)

Evidemment aucune de ces options na eacuteteacute acheteacutee Il faut donc se deacutebrouiller avec le minimum

Le CD-rom livreacute avec la carte contient la version deacutevaluation du compilateur C (DevToolsICC12)

Une fois que le programme est compileacute gracircce agrave ce logiciel il faut le transfeacuterer dans le microcontrocircleur Cette eacutetape se fait gracircce au moniteur situeacute dans le microcontrocircleur Le fichier devant ecirctre transfeacutereacute est le programme sous forme hexadeacutecimal (extension s19)

Il est possible de le faire avec lHyperTerminal de Windows Une fois connecteacute via la liaison seacuterie la commande LOAD permet de transfeacuterer un programme par copier coller dans le terminal

Un programme de terminal (OC-Console) est livreacute sur le CD-rom (DevToolsTerminal)En tapant help dans le terminal on a la liste de toutes les commandes du moniteur

Enfin on peut exeacutecuter le programme en tapant G suivi de ladresse de la premiegravere instruction du programme

Voici le quick-start extrait du manuel bull Connect the Evaluation Board via RS232 to a PC The connection between HCS12 T-

Board (interface SCI0 connector X2) and PC is simply made using the flat ribbon cable which is in the box

bull On the PC start a Terminal Program An easy to use Terminal Program is OC-Console which is available at no charge from our Website

bull Select a baudrate of 9600 Bd Dissable all hardware or software protocolsbull Caution make sure that jumper JP1 is in position 1-2 (this is the factory default setting)bull Connect a power supply to X1 delivering approx 9V (812V center pin positive)bull Please note wall plug power supplies are usually not stabilized and they provide a voltage

that is higher than the nominal (full load) voltage Therefore in order to get real 9V using 6V or 75V is normally sufficient The higher the input voltage the more heat will be produced by IC3

bull Once powered up the Monitor program will start display a message and await your commands For a list of monitor commands please refer to the D-Bug12 Reference Guide (see separate document on the accompanying CD-ROM)

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 63: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

Partie 4 DiversDans cette partie nous allons nous inteacuteresser au budget de lrsquoUV PR aux fournisseurs

et usinages dans les diffeacuterents domaines qui nous inteacuteresse

1 Budget

Budget PR A04Deacutesignations en Euros

Meacutecanique2 moteurs 674542 transmissions 122372 roues de roller 15002 axes de roues 0002 accouplements rigides 0002 supports 3000Platine support 000Plaque de fond 000Usinage 000Visserie 167

Electronique Informatique

Carte de deacuteveloppement Pic 11932Carte megravere 183052 LMD 18200 6308Composants divers 6265Tirage de carte 000

DiversImpressions rapports 60Deacutemarchage teacuteleacutephonique et fax 200

Total 1 33368Objectif fixeacute 2 00000Conclusion Beacuteneacuteficiaire 66632

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 64: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

2 Fournisseurs

En ce qui concerne les fournisseurs de moteurs nous avons contacteacute bull MDPmotor wwwmpdmotorfr

Contact Mme Anne ChampeacutetinaudTeacuteleacutephone 04 72 01 83 00

Commande passeacutee au nom de Coupe E=M6 BDE de lrsquoUTC M DUMAY D Accueil B FranklinRue Roger Couttolenc60203 COMPIEGNE

Commentaires Livraison en 48H gratuite si en stockSi pas en stock deacutelais tregraves longReacuteduction de 20 si participation agrave la Coupe

bull MUVMO wwwfaulhabercomContact M Benoicirct Turbe

Teacuteleacutephone 01 30 80 45 00Commentaires

Moteurs tregraves performants mais aussi tregraves chers

Pour ce qui est des renvois drsquoangle la reacutefeacuterence que nous avons retenue eacutetait disponible chez 2 fournisseurs

bull Radiospares wwwradiosparesfrAdresse Radiospares

Rue Norman King BP 45360031 BEAUVAIS

Commentaires Les prix sont un peu plus eacuteleveacutes que la concurrence mais les frais de port sont gratuits et la livraison en moins de 24 heures On a aussi -10 en tant que participant agrave la Coupe

bull HPC Europe wwwhpceuropecomCommentaires Ideacuteal pour tout ce qui est meacutecanique (reacuteduction moteur

entraicircnementhellip) veacuterifier que les piegraveces sont bien en stock

Pour tout ce qui est visserie bull Daniel

Commentaires Vente de vis agrave lrsquouniteacute drsquooutilshellip prix tregraves compeacutetitifs

En ce qui concerne les fournisseurs de mateacuteriel eacutelectronique nous avons passeacute nos commandes chez

bull Electronic Diffusion wwwelectronic-diffusionfr

bull Conrad wwwconradfr

bull Radiospares wwwradiosparesfr

bull Selectronic wwwselectronicfr

bull Lextronic wwwlextronicfr

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 65: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

bull Microship wwwmicroshipcom

22 Usinages

La halle GSM dispose drsquoune fraise et drsquoun tour agrave commande numeacuterique il faut contacter M Pouille les deacutelais drsquousinage sont tregraves importants (2 ou 3 mois) il faut maicirctriser TN24 et donc CATIA et eacuteventuellement acheter les outils et la matiegravere

La Halle GC dispose drsquoun tour manuel ideacuteal pour lrsquousinage de petites piegraveces ne neacutecessitant pas une preacutecision supeacuterieure agrave 01mm Lagrave il faut contacter M Poirel impeacuterativement fournir la matiegravere et des plans manuel suffisent Les deacutelais sont de lrsquoordre de un agrave deux jours Nous y avons fait usiner les axes de roues et les accouplements

Pour tout ce qui est perccedilage taraudage deacutecoupage de tocirclehellip qui ne neacutecessite pas une tregraves grande preacutecision lrsquoatelier TN04 est tout agrave fait suffisant il faut demander aux responsables avant de se servir des machines

Pour ce qui est de la Halle GM M Boulnois nrsquoa jamais le temps donc crsquoest une ideacutee agrave mettre de cocircteacute

En ce qui concerne les 2 supports ils ont eacuteteacute usineacutes par M Jean Pierre MONTE Chef drsquoatelier chez ASMP (Atelier Service Meacutecanique Preacutecision) agrave Ris-Orangis Il srsquoagit drsquoun parent drsquoun de nous

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 66: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

Conclusion

Lrsquoobjectif de ce projet eacutetait de reacutealiser la base roulante du futur robot de la Coupe E=M6 Nous pensons avoir atteint notre objectif mecircme si drsquoautres tests et ameacuteliorations doivent ecirctre envisageacutes et effectueacutes Le dossier technique ici preacutesent constitue une base documentaire qui pourra dans lrsquoavenir ecirctre consulteacute et donc faire gagner du temps aux futures eacutequipes Cette UV PR va permettre agrave lrsquoassociation de partir sur de bonnes bases pour cette eacutedition mais aussi pour les prochaines

Remerciements

Nous tenons agrave remercier

M Loriaux et M Baillot responsables de lrsquoatelier TN04M Lanfranchi et M Forgez enseignants chercheurs au laboratoire drsquoeacutelectromeacutecanique

de lrsquoUTC et suiveurs de notre PRM Poirel technicien de la halle GCM Pouille responsable de la halle GSMM Monte Chef drsquoatelier chez ASMPM Arnoult Enseignant chercheur agrave lrsquoUTC (pour les calculs de RDM)

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 67: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

ANNEXES

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 68: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

Ndeg Nom des eacutequipes Ecole - Ville Pts 2003 2002 Poster Base Accouplement Motorisation74 D2R2 TEAM Ex VA 82 3

162 Supaeacutero Toulouse 57 2 4 Oui Carreacute Avant98 ITIIS All Blacks ITII Nantes 54 Oui Rectangle 90deg Arriegravere

146 Les Dromadaires Lyceacutee Valence 48 Oui Carreacute Directe Arriegravere94 Minitech Montrouge 46 5 2 Oui Triangle

126 UTT UTT 41 8 122 Asso Tonnerre de Brest Brest 34 148 Projet AEIC Nogent le roy 30 Oui Rectangle Directe Milieu

85 IUT Ville dAvray VA 46 1 3 Oui Rectangle Directe Arriegravere8 Sophia Team Isia - Essi - Esinsa 29 Oui Carreacute Directe Milieu

143 Robotique Istil Roanne ISTIL Roanne 29 Oui Rectangle Directe Arriegravere101 E=M6 ENSSAT 29 Oui Rond Directe Milieu

54 E=Meuh Meuh ENSMM 27 Oui Carreacute Directe Arriegravere175 Annecy BTStronic 27 117 ARES ENSEA Cergy 27 Oui Rectangle Directe Arriegravere

31 CRIC IUT Cachan 26 Oui Rectangle Directe Arriegravere78 Projetamptech Istase 21 6 1 Oui Rond Directe Arriegravere34 Evolutek Epita - Epitech - Ipsa 21 oui Rectangle Chenille x x x

119 ARENIB ENIB 21 oui Carreacute Directe Arriegravere4 CRI ISEN Lille 21 Oui Octogone Directe Arriegravere

67 ROBOTIK 2000 CFAI Champs Marne 21 Oui Rond Directe Arriegravere154 Montlucon Robotique Montlucon 21

33 Sumo Supelec SEE 20 Oui Carreacute Directe Arriegravere107 SUDRIABOTIK ESME SUDRIA 20 Oui Rond Directe Arriegravere

38 EirBOT Enserb Talence 20 9 Oui Carreacute Directe Arriegravere48 DropyTeam IUT Muhlouse 20 Oui Rectangle Couroie Milieu

156 CyRCC Colombes 20 93 Club robotique de lESEO ESEO 19 5 Oui Rectangle Directe Arriegravere37 ENSIETA ENSIETA 19

191 IUP GEII AMIENS GEII Amiens 19 59 Unitec UTBM 18 71 Microb technology Ruel-Malmaison 18

144 Club robotique ECAM ECAM 18 161 Perrins Team Montrabeacute 18 Oui lego Directe Milieu150 ENAC ROBOTIQUE ENAC 17 7 9

6 Droidokass Paris 16 Oui Rectangle Directe Arriegravere89 Agence touriste Dijon 16 15 CaiMans ENSIM Le Mans 16 26 Imagine Robots Verneque 16 Oui Carreacute Arriegravere

3 ORL Robotique Libre Vimy 15 Oui Rectangle Directe arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation73 Robotech Montpellier Univ Montpellier 2 15 Oui qcq Directe Milieu

134 ValRobotik ENSIAME Valencienne 15 178 Les 2I Saint-Quentinois INSSET St-Quentin 15 oui Rectangle Arriegravere

7 Brick Story Courbevoie 15 Oui qcq Arriegravere9 LECDP Mareau 14 oui carreacute Directe Arriegravere

108 IUT Reims DUT GMP 14 oui Rectangle Directe Milieu53 Wouai-Team 2004 IFITEP Paris 14 87 The Mousquetaire Team TMT Biegravevre 13 11

159 Club Robot Supelec Rennes Supelec Rennes 13 Oui Trapeze 90deg Arriegravere120 FIUPSO 13

49 Robot 13 169 CRIsup2 St-Etienne de Rouvray 13 157 Cyberkernel Ruel-Malmaison 13 Oui Carreacute Chenille x x x

2 Ai2r ISEN TOULON ISEN Toulon 13 Oui Octogone Directe Milieu65 Club Robotique Lyceacutee Rascol 13 Oui Rectangle Directe Avant

142 [Kro]bot ENS Cachan 13 165 CORMROBOT Vannes 13 121 Robot EEA Orsay Orsay 12 Oui Carreacute Directe Arriegravere

11 Les Seacuterinus IUT Nantes 11 Oui Carreacute Directe milieu149 ORiGiNe IIE Evry 11 Oui Rectangle Directe Arriegravere177 Club obotique Polytech-Lille Polytech Lille 11 Oui Quelconque A 90deg milieu

27 RobotINSA - Strasbourg INSA Strasbourg 10 138 ClubElek INSA Lyon 10 4 Oui

68 roboINSAt INSA T 10 Oui Rectangle 127 ARFIT Tours 10 168 ROBI INSA Rouen 10 Oui Rectangle Chaine Arriegravere147 Diderobot Lyceacutee Diderot Paris 10

86 Club Robotique INSA de Rennes 9 Oui Rectangle Arriegravere25 ToucaBot ENSICA Toulouse 9 24 Newton KBOT Club Lyceacutee Clichy 9 99 La Panic Team IUT Cergy GEII 9

116 Club Robotique POLYGELEC Polytech Univ Nantes 9 7 Oui Carreacute Directe Arriegravere92 Club Composants de lINSIA INSIA 9 Oui

133 Maxi-TECH IGNY 9 Oui Rond Directe Milieu141 ECTAR ENSTA 9 Ouii Carreacute Arriegravere

79 Cefipa Club Robotique CEFIPA 9 Oui Hexa Directe Milieu109 Aliance CUST-IFMA CUST - IFMA 8 Oui Oblong Directe Arriegravere

77 APB Team AERO - EFREI 8 Oui Octogone Directe milieu152 ESIEA Paris ESIEA 8 112 Les Clovis Courmelles 8 Oui Rectangle Directe Arriegravere

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation166 ROBOTICAM ICAM 7 Oui Carreacute Courroie Arriegravere128 EIA La Courone 7 132 E=Teubreu ENST Bretagne 7 Oui Careacute Directe Arriegravere

22 Acuna-Matata IUT Grenoble1 7 Oui Rectangle Directe Arriegravere32 CRAC Aviron 7 Oui Carreacute Couroie Milieu

137 Cybernetique NORD Tourcoing 6 oui 11 EPMI Robotique Cergy 6 63 AM Robotique - Paris ENSAM 6 Oui Carreacute Directe Arriegravere90 Club Robot INT Evry 6 47 ERRI IMERIR 5 oui carreacute Directe Arriegravere

139 Robotique e=m6 Mines paris 4 Oui Carreacute 90deg Arriegravere131 Team IUP SI IUP Toulouse 4 Oui Rectangle Directe Arriegravere

1 AGMPR IUT Toulouse 4 Oui Carreacute Directe Arriegravere40 EPF Robotic EPF Sceaux 3 Oui Carreacute Directe Arriegravere

106 Telecom Robotic ENSIMAG - ENSERG 3 Oui Rond Directe Milieu55 Tik Robot Centrale Paris 3

130 Pablo Neruda Lyceacutee Dieppe 3 Oui Qcq Directe Arriegravere21 Association Robot ENSPS ENSPS Illkirch 2 Oui Carreacute Directe Arriegravere

153 ChipNDels Univ Paul Sabatier 2 69 Club Frodan(T) Gretz Armainvilliers 2 Oui Carreacute Directe Arriegravere

666 RobotWood 0 118 CAENGOUROU ENSI CAEN NH Oui Carreacute Directe Arriegravere124 Arobas IPST NH Oui Rectangle Engrenage Arriegravere

81 AIR ISEP ISEP NH 88 AEG ENSAM NH Oui Carreacute Directe Arriegravere95 As de Pic NH Oui 6 coteacutes Directe Avant

164 Asso Robotique Leacuteonard NH 52 Polytech NH 72 BRUM Univ Bretagne sud NH Oui qcq 16 Club e=m6 ESSAIM NH 84 Centrale Nantes Nantes NH Oui Carreacute Arriegravere

110 Mines Nantes Mines Nantes NH Oui Rond Directe Milieu64 ENIMTECH ENIM NH

181 Club EBranly NH 97 ECE ECE NH 61 ENISE ENISE NH

113 CRIS Supmeca Toulon NH 155 EIGSI EIGSI NH

91 ENSIB ENSIB NH

Ndeg Nom des eacutequipes Ecole - Ville Pts Poster Base Accouplement Motorisation182 ENSIL NH

85 ERC ESAIP NH Oui Rectangle Directe Milieu5 ESIA robotronique NH Oui Triangle Couroie Avant

140 ESIAL NH Oui 160 ESIA Ouest NH

43 ESIGELECTRONIK ESIG NH Oui Carreacute Directe Arriegravere103 ESISAR INPG ESISAR NH 115 ESTACA Paris NH 123 ESTIA NH Oui Triangle Directe Arriegravere129 CPE Lyon NH Non

70 Hand Tech NH oui Rectangle arriegravere151 Havrobot IUT Havre NH oui Rectangle Directe Milieu104 HM6 ENSHMG NH

44 IMERIR NH 62 ISEN BREST NH oui Rectangle Directe Arriegravere

135 ISIBOT ISIMA NH 75 IUP GMI Avignon NH oui rond Directe Arriegravere96 Objectif robot Objectif formation NH Oui

105 PG Robotik ENSPG NH Oui Rond Directe Milieu12 PM-Robotix NH

100 Polytech GII Marseille NH 50 Porteurs Libres USTL NH oui Rectangle Directe Arriegravere

145 Robot N7 ENSEEIHT NH 173 Robotek Orleacuteans Polytech-Orleacuteans NH Oui Carreacute Directe Milieu125 Robotik Cherbourg EIC NH Oui Carreacute Directe Arriegravere188 Rogwai NH

29 SYSTEO HEI NH 194 TaiTeam NH 114 Team Rocket NH 158 RobUTC UTC NH 64 12 Oui Carreacute Directe Arriegravere

20 WallaBot IUP GEII NH 66 Zeus amp Co NH

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 69: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

Veille technologique sur lrsquoaspect meacutecanique

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 70: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition des blocs moteurs

Page 70

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 71: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de lrsquoaccouplement

Page 71

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 72: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

UV PR Reacutealisation drsquoune base roulanteA04

Dessin de deacutefinition de la platine

Page 72

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 73: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

UV PR Reacutealisation drsquoune base roulanteA04

bull Les reacuteducteurs miniatures agrave engrenage conique sont proposeacutes en deux versions pour reacutepondre aux besoins des composants standard avec diffeacuterents niveaux dacuteapplication et dacuteeacuteconomie

bull Le type 2 possegravede des engrenages en acier trempeacute colleacutes sur des axes en acier meuleacute et trempeacute

bull Le type 3 possegravede des engrenages en aceacutetal homopolymegravere mouleacutes sur des axes en acier meuleacute et trempeacute

bull Tous les modegraveles possegravedent un boicirctier mouleacute par injection avec deux trous de passage lameacutes pour le montage sur chacircssis conventionnel et une douille taraudeacutee au-dessous de chaque axe pour le montage vertical

bull Dans ce plan le boicirctier de la porteacutee eacutevite les pivotements sous lacuteeffet de la chargebull Tous les modegraveles ont un rapport de 11bull Sur le type 2 les axes sont isoleacutes eacutelectriquement par rapport au boicirctierbull Le type 3 possegravede une isolation eacutelectrique entre les axes dacuteentreacutee et de sortie et

entre les axes et le boicirctierbull La boicircte dacuteengrenage et les porteacutees sont lubrifieacutees deacutefinitivement sur les deux

versions Toutes deux conviennent pour les transmissions manuelles et agrave court terme

Page 73

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 74: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

UV PR Reacutealisation drsquoune base roulanteA04

Documentations du reacuteducteur agrave renvoi drsquoangle

Page 74

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 75: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Motoreacuteducteur AMAX32GHPPLG42S015 Nm 14 Nm MDP

Page 75

24V0016 1 Rapport de reacuteduction 16

2 Nombre deacutetages 2

3 Rendement 075

4 Vitesse agrave vide trmn 403

5 Vitesse en charge trmn 309

6 Couple nominal Nm 057

7 Courant nominal A 14

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 76: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

UV PR Reacutealisation drsquoune base roulanteA04

Page 76

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 77: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

UV PR Reacutealisation drsquoune base roulanteA04

Documentations des diffeacuterents motoreacuteducteurs non retenus

Page 77

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 78: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

UV PR Reacutealisation drsquoune base roulanteA04

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Motoreacuteducteur RE035GPLG5203 Nm 24 Nm MDP

Page 78

24V0006 1 Rapport de reacuteduction 63

2 Nombre deacutetages 1

3 Rendement 085

4 Vitesse agrave vide trmn 688

5 Vitesse en charge trmn 559

6 Couple nominal Nm 060

7 Courant nominal A 21

Modification de la tension dalimentation

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 79: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

UV PR Reacutealisation drsquoune base roulanteA04

Page 79

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 80: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

UV PR Reacutealisation drsquoune base roulanteA04

0

50

100

150

200

250

plomb NiCd (NickelCadnium)

NiMH (NickelMeacutetal Hydride)

Lithium Ion Lithium polymer AlKalinerechargeable

type

Densiteacute deacutenergie (WhKg)Densiteacute deacutenergie (WhL)

Densiteacute eacutenergeacutetique de diffeacuterents types de batteries

Page 80

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 81: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

UV PR Reacutealisation drsquoune base roulanteA04

HCTL 1100

Page 81

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 82: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

UV PR Reacutealisation drsquoune base roulanteA04

Page 82

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 83: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

UV PR Reacutealisation drsquoune base roulanteA04

Page 83

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 84: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

UV PR Reacutealisation drsquoune base roulanteA04

Page 84

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 85: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

UV PR Reacutealisation drsquoune base roulanteA04

Code en C du programme de la carte drsquoasservissement numeacuterique artisanale (logiciel utiliseacute C2C)

pragma CLOCK_FREQ 20000000 include lcdh

Deacuteclaration des variables globalesint codeur1codeur2mcodeur1mcodeur2pwm1pwm2

void affiche() num_int(pwm1) phrase(______) num_int(pwm2)

Fonction principale - Initialise le PIC - attente touches pour reacuteglage pwm void main() intialistaion du PIC pc = 0 bank1() banque 1 trisa = 0x30 afficheurclavier trisb=0xFF Port B = lecture compteur trisc=00000000b trisd=0xFF Port D = lecture compteur trise = 0x04 RE01 en sortie et RE2 en entreacutee ADCON1=00000110b tous les ports en numeacuterique (conversion AD deacutesactiveacutee) OPTION_REG=00000011b prescaler TMR0 au 116egraveme INTCON = 0x00 PR2=0x64 valeur de la peacuteriode TMR2 bank0() banque 0 T2CON=00000000b Prescalaire du timer 2 agrave 1 soit avec PR2=0x64 =gt freacutequence de la PWM ~495KHz donc zone inaudible CCP1CON=00101100b CCP2CON=00101100b Mode PWM

Page 85

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 86: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

UV PR Reacutealisation drsquoune base roulanteA04

CCPR1L=0x32 PWM agrave 50 reacutesolution 10bits donc 512 CCPR2L=0x32 set_bit(T2CON2) deacutemarrer timer2

pb=0 pd=0

LCDinit() delay_ms(100) phrase( initialisation) delay_s(1) pc = 0xC0

initialisation des variables

char vrep=0x32k

codeur1 = 0 codeur2 = 0 mcodeur1 = 0 mcodeur2 = 0

pwm1 = vrep pwm2 = vrep CCPR1L = vrep CCPR2L = vrep

deacutebut set_bit(INTCON5) activation interruption timer0 enable_interrupt(GIE) while(1) k = touche() if (k = 0) putcmd(0x01) delay_ms(100) switch (k) case 1 pwm1++ CCPR1L = pwm1 affiche() break case 2 pwm1-- CCPR1L = pwm1 affiche()

Page 86

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 87: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

UV PR Reacutealisation drsquoune base roulanteA04

break case 3 pwm2++ CCPR2L = pwm2 affiche() break case 4 pwm2-- CCPR2L = pwm2 affiche() break case 5 case 6 CCPR1L = vrep CCPR2L = vrep putcmd(0xC0) num_int(mcodeur1) phrase(______) num_int(mcodeur2)

Fonction dinterruption - Veacuterifie linterruption qui la appeleacutee - Exeacutecute le code correspondant =gt Ici lit les compteurs void interrupt() if(INTCON amp 4) interruption de TMR0 codeur1 = pb codeur2 = pd

pc = pc | 0x30 reset des compteurs delay_us(16) pc = pc amp 0xCF

mcodeur1 = (mcodeur1 + codeur1) 2 moyenne des codeurs mcodeur2 = (mcodeur2 + codeur2) 2

clear_bit(INTCON2) efface le flag dinterruption

Page 87

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 88: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

UV PR Reacutealisation drsquoune base roulanteA04

bibliothegraveque lcdh

------------------------------------------------------------------------- Mode HD44780 type LCD Interface SEL = Port A bit - RE01 RS = Port A bit - RE00 Data_7 = Port A bit - RA03 Data_6 = Port A bit - RA02 Data_5 = Port A bit - RA01 Data_4 = Port A bit - RA00 This version is for 4 bit mode

char pa0x05char pb0x06char pc0x07char pd0x08char pe0x09

char trisa0x85char trisb0x86char trisc0x87char trisd0x88char trise0x89

char ADCON10x9Fchar ADCON00x1Fchar PR20x92char CCPR1L0x15char CCPR2L0x1Bchar CCP1CON0x17char CCP2CON0x1Dchar T2CON0x12

void bank0(void)void bank1(void)void bank2(void)void bank3(void)char touche(void)void putdata(char a)void putcmd(char a)

Page 88

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 89: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

UV PR Reacutealisation drsquoune base roulanteA04

void putchr(char a)void LCDinit(void)void phrase( const char lcdptr )void num_int(int num)

void bank0() clear_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank1() set_bit(STATUSRP0) clear_bit(STATUSRP1)

void bank2() clear_bit(STATUSRP0) set_bit(STATUSRP1)

void bank3() set_bit(STATUSRP0) set_bit(STATUSRP1)

char touche() char a a = pa amp 0x30 a gtgt= 4 a = a + (pe amp 0x04) return a

void putdata(char a) char xb delay_ms(4) x = a asm swapf _x_putdata1 output_port_a(pa amp 0xF0) output_port_a(pa | (x amp 0x0F))

Page 89

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 90: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

UV PR Reacutealisation drsquoune base roulanteA04

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

output_port_a(pa amp 0xF0) output_port_a(pa | (a amp 0x0F))

b = pe | 0x02 pe = b asm nop b = pe amp 0xFD pe = b

void putcmd(char a) char b b = pe amp 0xFE pe = b putdata(a)

void putchr(char a) char b b = pe | 0x01 pe = b

putdata(a)

void LCDinit(void) delay_ms(20) putcmd(0x28) delay_ms(15) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x28) putcmd(0x0C) putcmd(0x06) putcmd(0x01)

Page 90

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 91: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

UV PR Reacutealisation drsquoune base roulanteA04

void phrase( const char lcdptr ) char pi

pi = 0 while( lcdptr[pi] = 0 ) putchr( lcdptr[pi++] )

void num_int(int num) putchr( 0 + (num 10000)) putchr( 0 + (num 1000) 10 ) putchr( 0 + (num 100) 10) putchr( 0 + (num 10) 10 ) putchr( 0 + num 10 )

Page 91

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 92: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

UV PR Reacutealisation drsquoune base roulanteA04

MOTOROLA HCS12 (MC9S12DP256B) bull 16-bitbull 256 Kb Flash EEPROMbull 12 Kb RAMbull 4 Kb EEPROMbull 2 asynchronous serial communications interfaces (SCI)bull 3 serial peripheral interfaces (SPI)bull 8-channel ICOC enhanced capture timerbull 2 8-channelbull 10-bit analog-to-digital converters (ADC)bull 8-channel pulse-width modulator (PWM)bull 89 discrete digital IO channels (Port A Port B Port K and Port E)bull 20 discrete digital IO lines with interrupt and wakeup capabilitybull 5 CAN 20bull 1 Isup2C Bus

2 cartes sont envisageables pour ce microcontrocircleur

La T-Board de Elektronic Laden coucircte moins de 200 euro mais linterface de programmation (ComPod) est en option Cette derniegravere permet de charger un programme rapidement et de le deacutebugger facilementCette carte preacutesente linteacuterecirct davoir beaucoup dentreacutees-sorties tout en eacutetant tregraves petite

La deuxiegraveme carte possible est le kit de Motorola (M68KIT912DP256) Elle coucircte environ 500 euro mais contient toutes le neacutecessaire pour programmer et deacutebugger facilement Elle contient eacutegalement une zone de prototypage Outre ses fonctionnaliteacutes sa plus grande particulariteacute est sa taille

Page 92

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 93: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

UV PR Reacutealisation drsquoune base roulanteA04

MICROCHIP PIC 18F458 bull 10 MIPSbull 8-bitbull 40 MHz Max Speedbull Program Memory Size (bytes) 32768bull RAM Size (bytes) 1536bull Data EEPROM Size (bytes) 256bull IO pins 34bull 5 PWM 10-Bitbull PSPbull 1 CAN 20bull 1 Isup2Cbull ICDbull Self-Programming

Ce PIC de nouvelle geacuteneacuteration peut ecirctre programmeacute en C avec le compilateur PIC18 Il comporte des bus Isup2C et CAN mais est limiteacute en nombre de pattes donc de fonctions utilisables en mecircme temps

Il nexiste pas vraiment de carte commerciale de petite taille et ambivalente pour les PICs

Les PICs sont peu oneacutereux voir gratuits sils sont commandeacute en sample Cest donc un microcontrocircleur de choix pour les petites tacircches Cest pourquoi il peut ecirctre inteacuteressant de disposer dune carte de deacuteveloppement La PICdem2plus comporte des peacuteripheacuteriques comme un afficheur LCD ou des boutons elle dispose dune zone de prototypage et elle permet dutiliser des 16Fxxx comme des 18Fxxx

Page 93

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 94: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

UV PR Reacutealisation drsquoune base roulanteA04

RABBIT (RCM3400) bull Small size 116 times 137 times 031

(29 mm times 34 mm times 8 mm) bull Microprocessor Rabbit 3000 running at 294 MHzbull 47 parallel 5 V tolerant IO lines 41 configurable for IO 3 fixed inputs 3 fixed outputsbull Two additional digital inputs one additional digital outputbull Eight single-ended or four differential analog inputsbull One additional analog inputbull External reset inputbull Alternate IO bus can be configured for 8 data lines and 6 address lines (shared with

parallel IO lines) IO readwritebull Ten 8-bit timers (six cascadable) and one 10-bit timer with two match registers bull 512K flash memory 512K SRAM (options for 256K flash memory and 256K SRAM)bull 10-bit free-running PWM counter and four width registersbull Two-channel Input Capture can be used to time input signals from various port pinsbull Two-channel Quadrature Decoder accepts inputs from external incremental encoder

modulesbull Five CMOS-compatible serial ports maximum asynchronous baud rate of 55 Mbps Four

ports are configurable as a clocked serial port (SPI) and two ports are configurable as SDLCHDLC serial ports

bull Supports 115 Mbps IrDA transceiver

Le rabbit est tregraves simple dutilisation mais difficile agrave inteacutegrer En effet il est livreacute avec une carte de deacuteveloppement assez encombrante Pour lutiliser en situation il faudrait linteacutegrer agrave une carte deacuteveloppeacutee en interne

PROTEE bull 20 MIPSbull beaucoup dIObull CANsbull PWMsbull langage Forth

Un membre de lassociation (Joseph Pinkasfeld) a proposeacute dutiliser une carte de petite seacuterie deacuteveloppeacutee au sein de la socieacuteteacute Protee Linconveacutenient principal de cette carte est lapprentissage du langage qui lui est associeacute

PC104 Cette norme deacutecrit une architecture sous forme de modules agrave empiler De tels modules sont disponibles au sein de lassociation Malheureusement la documentation est introuvable De plus cet ensemble est assez encombrant

HITACHI SH-1 Des cartes SH-1 sont disponibles dans lassociation Elles ont deacutejagrave eacuteteacute utiliseacutees dans les anneacutees preacuteceacutedentes puis abandonneacutees au profit des PICsLeur puissance de calcul parait satisfaisanteIl semble quelles ne contiennent pas de ROM (dans leur eacutetat actuel) Il fallait donc recharger le programme agrave chaque redeacutemarrage

Page 94

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens
Page 95: UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR 2005 gros.pdf · chaque année au mois de mai sur le site de la Ferté Bernard à

UV PR Reacutealisation drsquoune base roulanteA04

LIENS Microcontrocircleur HCS12 httpwwwfreescalecomwebappspssiteprod_summaryjspcode=MC9S12DP256Bampnod

Carte T-Board httpwwwelektronikladendeen_hcs12tbhtml

Carte Motorola kit httpwwwfreescalecomwebappspssiteprod_summaryjspcode=M68KIT912DP256ampparentCode=MC9S12DP256BampnodeId=0162468636bJwn

Page 95

  • REALISATION DE LA
  • ASSOCIATION COUPE E=M6
  • 2La Coupe de France de Robotique 2005
    • Meacutethode de Ziegler Nichols temporelle
    • Meacutethode de Ziegler Nichols freacutequentielle
      • Scheacutema
        • Motorola HCS12 (MC9S12DP256B)
        • Microchip PIC 18F458
        • Rabbit (RCM3400)
        • Protee
        • PC104
        • Hitachi SH-1
        • Liens