UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR...
-
Upload
doankhuong -
Category
Documents
-
view
214 -
download
0
Transcript of UV PR REALISATION DE LA BASE ROULANTE DU …assos.utc.fr/utcoupe/old/2005/fichiers/Rapport UV PR...
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-