Upload
wael-badri
View
218
Download
0
Embed Size (px)
Citation preview
8/7/2019 Systmes ordins en temps rel Projet de session Robot mobile
1/13
ELE542 Systmes ordins en temps rel Projet de session Robot mobile Page 1 de 13
ELE542 Systmes ordins en temps rel
Projet de session
Robot mobile
1.0- Objectifs
- Utiliser et programmer un microcontrleur dans un systme embarqu en temps rel.
- Se familiariser avec larchitecture de base dun programme qui traite des vnements
synchrones et asynchrones en temps rel.
- Se familiariser avec un systme dexploitation multitche de systmes embraqus en
temps rel (RTOS).
- Se familiariser avec le fonctionnement dun microcontrleur et de ses priphriques
internes.
- Se familiariser avec les entres/sorties et protocoles de communication habituellement
utiliss dans les systmes embarqus.
2.0 DescriptionLe but du projet est dutiliser le microcontrleur ATMega32 pour faire fonctionner un
petit robot mobile en mode tlguidage et avec dtection dobstacle. Les
dplacements du robot sont dcids par des commandes de tlguidage tandis que le robot
dtecte et vite les collisions avec les obstacles de faon autonome.
8/7/2019 Systmes ordins en temps rel Projet de session Robot mobile
2/13
8/7/2019 Systmes ordins en temps rel Projet de session Robot mobile
3/13
8/7/2019 Systmes ordins en temps rel Projet de session Robot mobile
4/13
ELE542 Systmes ordins en temps rel Projet de session Robot mobile Page 4 de 13
Logiciel de tlguidage :
Le logiciel de tlguidage est une application qui roule sur le PC et qui fait le lien
entre une petite manette de jeu (Logitech Precision II) ou la souris et la carte de
dveloppement qui contrle le robot. Le logiciel reoit les commandes en provenance
de la manette de jeu ou la souris et les transmet la carte STK500 via le lien srie.
En temps normal, le robot reoit les commandes par lien Bluetooth grce un module
RS232-Bluetooth install sur lordinateur et un autre module RS232-Bluetooth
connect au port srie de la carte STK500. Par contre, lors du dveloppement, le lien
Bluetooth peut est remplac par un simple cble srie qui relie lordinateur
directement la carte STK500.
De plus, le logiciel de tlguidage fournit une petite console qui permet dafficher des
messages transmis par le robot via le lien srie et qui peut servir pour transmettre desmessages de dverminage.
Logiciel de simulation :
Le logiciel de simulation mule le comportement du robot tels que le dplacement et
la dtection dobstacles ainsi quun environnement virtuel compos dobstacles et/ou
de parcours tel quun labyrinthe. Plus prcisment, le logiciel de simulation reoit les
commandes des moteurs (PWM, direction) produit par la carte STK500 et les
convertit en dplacement dans lenvironnement virtuel. Simultanment, le logiciel de
simulation dtecte la prsence dobstacles virtuels et mule le fonctionnement des
capteurs sonars en transmettant les signaux appropris vers la carte STK500 la
place des vrais capteurs.
Pour sinterconnecter la carte STK500, le logiciel de simulation utilise uniquement
des priphriques quon retrouve sur la plupart des ordinateurs personnels. Par
exemple, les commandes de vitesse des moteurs (PWM) sont lues par les canaux
gauche/droite du microphone (Line In) de la carte de son de lordinateur. Tandis que
les commandes de moteurs (commandes de direction) ainsi que la communication
I2C avec les capteurs sonars sont obtenus laide du port parallle de lordinateur.
Grce au logiciel de simulation du robot, le dveloppement au laboratoire est fait
principalement laide dun ordinateur PC et de la carte de dveloppement STK500.
8/7/2019 Systmes ordins en temps rel Projet de session Robot mobile
5/13
ELE542 Systmes ordins en temps rel Projet de session Robot mobile Page 5 de 13
3.0 Partie 1 : Systme embarqu avant-plan/arrire-plan
Le but de cette partie du projet est de dvelopper un programme selon larchitecture
avant-plan/arrire-plan qui gre les diffrentes composantes du robot. Selon cette
architecture, tous les vnements synchrones ou asynchrones sont traits par des
interruptions, tels que :
- larrive dune commande, - acquisitions de lADC,
- fin dun cycle du PWM, - communication I2C.
Tandis que le gros du traitement est effectu dans le programme principal et les fonctions
que celui-ci appelle. C'est--dire, larrire-plan sera responsable du traitement suivant :
- la conversion des trames de tlguidage,
- la conversion des acquisitions de lADC,
- la conversion des commandes en PWM,- la gestion des sonars et dtection des obstacles,
- gestion de laffichage du statut du robot par les LED,
- gestion des interrupteurs de mise en marche et darrt durgence.
La figure ci-dessous donne un aperu (incomplet) de larchitecture gnrale du
programme.
Dbut
INITIALISATION
Convertit la trame de tlguidageen commande pour les moteurs
CommandeReue ?
- Dmarre PING sur un sonar- Rcupre mesure sur lautre sonar- Alterne entre sonar gauche et droit
Tick de50 ms ?
- Convertit valeur de lADC en valeur de vitesse- Calcul valeur de PWM- Met jour les PWM et direction des moteurs
Fin dun cycledu PWM ?
Change le comportement durobot pour viter la collision
Obstacle proximit ?
Affiche le nouveau statut sur les LEDStatutchang ?
- Reoit les trames de tlguidage- Transmet un cho des trames- Rinitialise le Watchdog
- Accumule les acquisitions delADC sur le canal
- Change de canal
Lve un drapeau de fin de cycledu PWM
Gre la transmission et larception I2C avec les sonars
InterruptionUART
InterruptionADC
InterruptionTimer/Counter 1
InterruptionTWI
Arrire-plan Avant-plan
8/7/2019 Systmes ordins en temps rel Projet de session Robot mobile
6/13
ELE542 Systmes ordins en temps rel Projet de session Robot mobile Page 6 de 13
3.1 Spcifications
- Commandes de tlguidage :
- Chaque trame de tlguidage est compose de 3 donnes de 1 Byte :
Commande
0xF1 commande normale
0xF0 arrt obligatoire
Vitesse
Valeur = 0 200
(vitesse = -100% 100%)
Angle
Valeur = 0 180
(angle = 0 360o)
- Les trames sont transmises continuellement par le tlguidage.
- Le robot doit transmettre un cho de chaque donne de trame reue
immdiatement.
- La communication se fait par le UART selon le protocole suivant :
- vitesse = 9600 Baud - 1 bit darrt - Mode : Interruption- 8 bits de donnes - pas de parit
- Envoie dune trame de debug :
- Le tlguidage permet de recevoir des trames de debug et de les afficher dans
lespace blanc sous le contrle dangle et de vitesse. Pour ce faire, il suffit
denvoyer une chaine de caractre dbutant par 0xFE et se terminant par 0xFF.
- Pour viter les problmes lors de cette transmission, il faut cesser
temporairement de transmettre lcho de chaque donne reue.
- Dtection dun bris de lien de tlguidage :
- Le robot doit dtecter ds que possible un bris de communication avec le
tlguidage; c'est--dire, lorsque le robot ne reoit pas de commandes de
tlguidage pendant un certain intervalle de temps.
- Le module Watchdog est particulirement bien adapt pour cette tche de
surveillance. Il est programm pour redmarrer le systme (RESET) aprs uncertain dlai moins quil ne soit rinitialis avant la fin du dlai.
- Le Watchdog doit tre configur avec un dlai judicieusement choisit et devra
tre rinitialis larrive de chaque commande de tlguidage. Ainsi, si les
8/7/2019 Systmes ordins en temps rel Projet de session Robot mobile
7/13
ELE542 Systmes ordins en temps rel Projet de session Robot mobile Page 7 de 13
commandes de tlguidage tardent arriver, le Watchdog redmarrera le
systme et le robot sera replac dans son tat initial, en attente dtre activ.
- Affichage de ltat du robot par les LED :
- Les LED de la carte STK500 servent afficher certaines informations sur ltat
du robot.
- La dfinition de chacune de ces LED est donne dans le tableau ci-aprs :
# LED Signification
0 Pas utilise
1 Commande de tlguidage reue (clignote)
2 Obstacle dtect par le sonar droit
3 PING envoy par le sonar droit (clignote)
4 Obstacle dtect par le sonar gauche
5 PING envoy par le sonar gauche (clignote)
6 Robot en attente (tat A voir interrupteurs)
7 Robot actif (tat B voir interrupteurs)
- Interrupteurs de mise en marche et darrt durgence :
- Linterrupteur # 6 permet dactiv le robot
- Linterrupteur # 7 force un arrt durgence du robot
- La logique de fonctionnement de la mise en marche et de larrt durgence est
donne par la machine tats finis ci-dessous :
tat A : - Robot en attente
- Tous les systmes sont inactifs
tat B : - Robot actif
- Tous les systmes sont en fonction
- Calibration des moteurs :
- cause de la variabilit des composantes du robot (tolrance des composantes,
charge de la batterie, ), les mesures de vitesse des moteurs doivent tre
calibres lors de linitialisation du systme.
A BSW6
SW6
SW7
SW7
8/7/2019 Systmes ordins en temps rel Projet de session Robot mobile
8/13
ELE542 Systmes ordins en temps rel Projet de session Robot mobile Page 8 de 13
- La calibration se fait en mesurant les vitesses maximum (positive et ngative) et
la vitesse nulle de chacun des deux moteurs (gauche et droite) de la faon
suivante :
CAL DIR2 DIR1 PWM Mesure
1 0 1 0 Vmax+
0 0 1 0 Vzero+
0 1 0 0 Vzero-
1 1 0 0 Vmax-
o CAL = bit de calibration
DIR1-DIR2 = bits de direction du moteur voir figure 1
PWM = signal de PWM du moteur
- La calibration est effectue en prenant la moyenne dune srie de mesure pour
chaque vitesse.
- Les deux signaux de PWM des moteurs doivent tre maintenus zro pendant la
procdure de calibration.
- Le bit de calibration (CAL) est maintenu zro pendant le fonctionnement
normal du robot.
- Mesure de la vitesse des moteurs :
- La vitesse des moteurs gauche et droit est mesure par sur les canaux 0 et 1 de
lADC, respectivement.
- La configuration de lADC est la suivante :
- Frquence de lhorloge de lADC = 125 kHz
- Mode dopration = Freerun
- Rfrence de voltage = AREF
- Mode de traitement des acquisitions = Interruption
- La routine dinterruption accumule les mesures dans une variable pour chaque
moteur, dont la moyenne sera calcule plus tard lorsque la valeur de la vitesse
sera utilise pour rguler le PWM (voir Rgulation de la vitesse des moteurs).
8/7/2019 Systmes ordins en temps rel Projet de session Robot mobile
9/13
ELE542 Systmes ordins en temps rel Projet de session Robot mobile Page 9 de 13
- Puisque lADC fournit une valeur entre 0 et 1023 et que les bits A2 et A3 nous
permettent dinterprter cette valeur comme positive ou ngative, le rapport
entre les valeurs fournies par lADC et la vitesse du moteur est le suivant :
- Rgulation de la vitesse des moteurs :
- Les vitesses de rotation des moteurs sont contrles par deux signaux de PWM
gnrs par le chronomtre/compteur # 1 (Timer/Counter # 1). En effet, ce
chronomtre/compteur de 16 bits est en fait double et peut gnrer 2 signaux dePWM indpendants avec une excellente rsolution.
- Le chronomtre/compteur # 1 doit tre configur de la faon suivante :
fPWM = 200 Hz Mode dopration recommand :
PWMB = moteur gauche - Fast PWM
PWMA = moteur droit - Interruption de dbordement
- Niveau haut au dbordement
- Niveau bas la comparaison
- Le sens de rotation des moteurs est contrl par 2 bits de direction (DIR 2, DIR1)
pour chaque moteur, selon la logique suivante :
- Pour que les mouvements du robot correspondent aux commandes de
tlguidage, la vitesse des moteurs doit tre rgule par la fonction CalculPWM
qui sera fournie. Le prototype de cette fonction est donn ci-dessous :
DIR2 DIR1 Sens de rotation
0 0 Neutre
0 1 Marche avant
1 0 Marche arrire
1 1 Frein
Vzero+ Vmax+
0% 100%
0 1023Marche avantMarche arrire
Vmax- Vzero-
vitesse
ADC
-100% 0%
-1023
8/7/2019 Systmes ordins en temps rel Projet de session Robot mobile
10/13
ELE542 Systmes ordins en temps rel Projet de session Robot mobile Page 10 de 13
void CalculPWM (float Vitesse, float Angle, float Vg, float Vd, float *PWMg, float *PWMd)
o -1.0 Vitesse 1.0
0.0 Angle 2
-1.0 Vg 1.0
-1.0 Vd 1.0
-1.0 PWMg 1.0
-1.0 PWMd 1.0
Note : Les valeurs de vitesse et de PWM sont exprimes en %.
- Ainsi, la procdure pour rguler le comportement du robot est la suivante :
1 Calculer la moyenne des chantillons recueillit par lADC.
2 Excuter la fonction CalculPWM.
3 Mettre jour les PWM et les bits de direction des moteurs.
- Dtection dobstacle avec les sonars :
- La communication avec les sonars est tablie laide du module TWI et selon le
protocole de communication I2C. Ainsi, le TWI devras tre configur de la
faon suivante :
Mode dopration = - Traitement par interruption fTWI = 10 kHz
- Mode matre
- pas dadresse esclave
- Les deux sonars sont connects sur le mme bus TWI et ont leur adresse propre :
Adresse
En lecture En criture
Sonar gauche 0xE1 0xE0Sonar droit 0xE3 0xE2
Note : En fait, le bit LSB de ladresse dtermine si une opration
dcriture (LSB = 0) ou de lecture (LSB = 1) sera effectue par le
matre (TWI) vers lesclave (sonar).
Provient des commandes de tlguidage
Provient des mesures de lADC
Valeurs de PWM retourns par la fonction
tous les 5 ms
8/7/2019 Systmes ordins en temps rel Projet de session Robot mobile
11/13
ELE542 Systmes ordins en temps rel Projet de session Robot mobile Page 11 de 13
- En plus de leur adresse personnelle, les sonars possdent les 4 registres internes
suivants :
FonctionNo. registre
En lecture En criture
0 # de rvision - logiciel Commande1 inutilis Gain max
2 Mesure - MSB Porte
3 Mesure - LSB inutilis
Gain : La valeur du gain dtermine la sensibilit du micro du sonar. Un gain
lev rend le sonar plus sensible des chos faibles tels que des chos
lointains et des chos sur des surfaces molles. Par contre, cela rend
aussi le sonar sujet aux mesures errones.
La squence de communication pour modifier la valeur du gain est la
suivante :
Adresse du sonar Valeur du gain
(Mode criture) # du reg. (0 16)
de gain
Porte : La valeur de la porte dtermine le temps maximum dcoute du
sonar. Les chos qui reviennent aprs ce temps dcoute sont ignors.
Ainsi, selon la vitesse du son dans lair (environ 350 m/s), ce temps
dcoute dtermine une dure de vol aller-retour et donc une distance
maximum. La formule de calcul de la porte est la suivante :
Dure dcoute (en s) (Reg. de porte + 1) * 255 s
ou
Porte (en cm) = (Reg. de porte + 1) * 4.3 cm
0xE0 0x01 0x08
8/7/2019 Systmes ordins en temps rel Projet de session Robot mobile
12/13
ELE542 Systmes ordins en temps rel Projet de session Robot mobile Page 12 de 13
La squence de communication pour modifier la valeur de la porte
est la suivante :
Adresse du sonar Valeur de la porte(Mode criture) # du reg. (0 255)
de porte
Commande : Le registre de commande permet de dclencher un PIng du
sonar et deffectuer une mesure selon un de 3 modes.
La squence de communication pour modifier la valeur de la
porte est la suivante :
Adresse du sonar Commande :(Mode criture) # du registre 0x50 : mesure en pouce
de commande 0x51 : mesure en cm0x52 : mesure en s
Mesure : Le rsultat dun PING du sonar est fournit sous la forme dun
nombre non-sign de 16 bits, rpartit dans 2 registres. Ces 2
registres doivent tre lut sparment. La squence de
communication pour lire des registres exige que le numro de
registre soit transmit dabord au sonar, avant de lire sa valeur :
Adresse du sonar Adresse du sonar Restart(Mode criture) # du reg. (Mode lecture) # du reg.
de mesure de mesure(MSB) (LSB)
- Puisque le robot possde 2 sonars et pour viter quils sinterfrent lun lautre,
les sonars devront faire leur PING en alternance avec un dlai suffisant entre les
0xE0 0x02 0x2F
0xE0 0x00 0x51
0xE0 0x02 0xE1 mesure 0xE0 0x03 0xE1 mesure
8/7/2019 Systmes ordins en temps rel Projet de session Robot mobile
13/13
ELE542 Systmes ordins en temps rel Projet de session Robot mobile Page 13 de 13
deux. Ainsi, la configuration et la gestion recommandes des sonars sont
donnes ci-dessous :
- Configuration : Gain = 8 12
Porte = 1.5 m 3 m
2 options : - porte fixe
- porte proportionnelle la vitesse
- Gestion :
1 Dclenche un PING dans un sonar,
2 Rcupre la mesure de lautre sonar,
3 Alterne les sonars.
tous les 50 ms