![]() |
Programmation
I. Conception des
algorigrammes.
1) Définition de l’algorigramme.
Un
algorigramme est une représentation graphique et
normalisée d’un algorithme. Ce
dernier est une suite d’actes ou d’opérations
élémentaires à exécuter en
séquence afin d’accomplir une tâche qui suit un
enchaînement strict.
L’algorigramme est donc l’étape nécessaire et
utile qui précède l’écriture du
programme.
Pour la
conception des algorigrammes nous utiliserons le logiciel AlgoDraw®.
2) Algorigramme du programme principal.
Variables :
- MG :
Moteur Gauche ;
- MD :
Moteur Droit ;
- CG :
Capteur Gauche (CG=0, noir détecté ; CG=1, blanc détecté) ;
- CD :
Capteur Droit (CD=0, noir détecté ; CD=1, blanc détecté).
Le langage algorithmique est la base de l’algorigramme.
Il représente la suite d’actions que le robot devra effectuer afin de suivre
une ligne.
Langage algorithmique :
Début action
Démarrer MG
et MD
Si CG=0
alors Ralentir MD
tant que CG=0
si CD=0
alors Stopper MD
sinon Ralentir MD
fin si
fin tant que
Fin si
Si CD=0
alors Ralentir MG
tant que CD=0
si CG=0
alors Stopper MG
sinon Ralentir MG
fin si
fin tant que
Fin si
Fin action
3) Algorigramme de la Modulation en Largeur d’Impulsion (MLI).
Le robot suit une ligne qui peut être plus ou moins
courbé. Dans le cas d’un virage très intense, si la vitesse est trop
importante, le robot risque de sortir de la piste. Nous avons donc eu le besoin
de pouvoir faire varier la vitesse.
Un moteur possède une vitesse qui est proportionnelle
à la tension aux bornes de celui-ci. Afin de faire varier la vitesse on peut
donc soit modifier cette tension ou
utiliser la modulation en largeur d'impulsion.
La Modulation en Largeur d'Impulsion (MLI), soit en
anglais Pulse Width Modulation (PWM),
est un signal rectangulaire dont on peut faire varier
le rapport cyclique, c'est à dire le rapport entre le temps à l’état haut et la
période. Formule illustrant ce rapport :
α = th / T
Par
exemple, un rapport cyclique de 10% signifie que le signal reste 10% du temps à
l'état haut et 90% du temps à l'état bas, alors qu'un rapport cyclique de 90%
signifie que le signal reste 90% du temps à l'état haut et 10% du temps à
l'état bas.
le
timer0 est plus précisément expliqué dans la partie programmation en langage C.
Variables :
- tmr0if :
Timer0 Interruptions Flag (drapeau des interruptions du timer0) ;
- tmr0 : Nombre
de cycles d’horloge compté ;
- NbInt :
Nombre d’interruptions ;
- VitMG :
Vitesse moteur gauche ;
- VitMD :
Vitesse moteur droit ;
- VMG :
Valid moteur gauche ;
- VMD :
Valid moteur droit.
Début action
Si tmr0if=1
alors tmr0=6
si NbInt>9
alors NbInt=0
Fin si
NbInt=NbInt+1
Si VitMG>=NbInt
alors VMG=1
sinon VMG=0
Fin
si
Si VitMD>=NbInt
alors VMD=1
sinon VMD=0
Fin si
Fin si
Fin action
Sommaire |