page49
Questions fréquentes sur la programmation :
Exécution séquentielle des instructions :
Les instructions d’un programme sont exécutées les unes après les autres (il n’exécute pas plusieurs instructions à la fois).
Pour ne pas « rater » un événement extérieur :
Une instruction est constituée par un mot clé du langage de programmation (ici il s’agit des « blocs » utilisés dans les diagrammes). Une instruction a un rôle bien déterminé et peut être paramétrée. Par exemple « pause xxx » indique au microcontrôleur d’attendre pendant un temps de xxx ms où xxx est une valeur paramétrable exprimée en millisecondes (de 1 à 65 535 ms).
Tant que le microcontrôleur exécute cette instruction, il ne fait rien d’autre. Ainsi, si l’on veut réagir immédiatement à un stimulus extérieur à l’aide des fonctions de test (par exemple détection d’un marquage au sol), il faut s’arranger pour que le programme ne soit pas « coincé » trop longtemps sur l’exécution de l’instruction en cours (par exemple avancer pendant 2s), sans quoi on risque de rater l’événement (croisement du marquage au sol pendant la période de 2s où MicroRobot avance).
Pour vérifier fréquemment l’état d’un capteur, on peut par exemple intercaler des sauts réguliers à un sous programme qui traite l’acquisition des données reçues par un capteur.
Le microcontrôleur de MicroRobot enchaîne l’exécution des instructions au rythme de 1 million d’instructions par secondes (ordre de grandeur).
Persistance des commandes de déplacement :
A la mise sous tension de MicroRobot, le microcontrôleur est initialisé et toutes ses sorties sont remises à zéro ; le microcontrôleur commence alors à exécuter son programme à partir de l’instruction « start ». Les instructions qui commandent le déplacement de MicroRobot (avancer, gauche, droit, reculer) pilotent les moteurs. L’action engendrée par ce type d’instruction est maintenue tant que le programme ne rencontre pas une nouvelle instruction de déplacement qui l’annulera en la remplaçant.
Gestion de la vitesse :
La vitesse des moteurs est gérée par un microcontrôleur secondaire. Celui-ci a besoin d’un temps d’initialisation de 100 ms pour pouvoir initialiser leur vitesse à une nouvelle valeur. Si l’on souhaite modifier la valeur de la vitesse au cours d’un programme, il est conseillé d’introduire un temps d’attente de 100 ms (pause 100) avant de modifier la valeur de la vitesse à l’aide de la commande « speed ».
La vitesse de rotation des moteurs est gérée par des impulsions de longueur variable (paramétrables par la commande « speed ». La vitesse de rotation des moteurs est dans une certaine limite indépendante de l’état des de piles. Cependant, des piles usées dont la capacité (mAh) aurait chuté de manière trop importante ne permettent pas de fournir l’énergie suffisante pour entraîner correctement MicroRobot. Dans ce cas les moteurs tentent d’imposer la vitesse de rotation qui est programmée mais ils manquent de puissance et MicroRobot se déplacera alors plus lentement.
Il est recommandé d’utiliser des piles alcalines pour alimenter MicroRobot. Par ailleurs, il est recommandé d’ôter les piles de MicroRobot en cas de non utilisation prolongée.
Utilisation des variables locales :
Le module à ultrasons et le module télécommande mémorisent le résultat de leurs acquisitions dans des variables locales ; il conviendra de prendre garde à l’utilisation redondante de ces mêmes variables locales à d’autres fins dans les programme afin d’éviter des confusions sur leur contenu au moment où l’on souhaite exploiter leur valeur dans un programme.
Comment vérifier la longueur d’un programme :
Lorsque le diagramme est affiché, appuyer sur F5 pour le convertir en basic puis sur F4 pour vérifier sa syntaxe et sa longueur.