Outils pour utilisateurs

Outils du site


les_exposes:robot_moteur

Ceci est une ancienne révision du document !


“Pour écrire un programme, on utilise des fonctions qui interrogent les capteurs et commandent les actionneurs. Ces fonctions ne font pas partie du langage C lui-même, mais d’une extension de C fournie par le fabricant du robot.

Pour faire avancer le robot, on utilise la fonction MOT_STR. Par exemple, l’ins- truction MOT_STR(50,FWD,TIME,100); fait avancer le robot à la vitesse 50, en marche avant, pendant 10 secondes (100 dixièmes de seconde)

Le troisième argu- ment indique si l’on souhaite spécifier une durée ou une distance. Dans ce chapitre, nous spécifierons toujours une durée et cet argument sera TIME. Le quatrième argument, compris entre 0 et 255, est la durée du mouve- ment exprimée en dixièmes de second es.

SOLUTION 1: On peut aussi faire avancer le robot pendant un temps infini en donnant, conventionnellement, la valeur 0 comme durée.

Le robot continue alors son mouvement jusqu’à la fin, à moins que ce mouvement ne soit interrompu par l’initiation d’un autre mouvement.

En effet, si la poursuite de l’exéc ution du programme initie un second mouvement, alors le premier mouv ement est interrompu.

Le mouvement rectiligne est interrompu quelques fractions de secondes seulement après avoir été initié. Il n’est donc pas effectué.

SOLUTION 2: Si on souhaite effectuer le mouvement rectiligne en entier, avant de passer à la rotation, on doit utiliser la variable MOT_END qui prend la valeur 0 (équivalent de false en C) quand le robot est en mouvement et la valeur 1 (équivalent de true en C) quand le robot est immobile. Ainsi, quand on exécute l’instruction : MOT_STR(50,FWD,TIME,100); while(!MOT_END){} MOT_ROT(25,FWD,CENTER,LEFT,ANGLE,50) ”

EXPLICATION DES INTERRUPTIONS: “A LLER PLUS LOIN Les interruptions Organiser un programme en une grande boucle qui teste les capteurs en permanence est possible, mais souvent malcommode. On a donc introduit dans les langages de programmation des outils qui permettent d’exprimer la même chose de manière plus simple. Le programme décrit d’une part ce qu’il faut faire quand tout se passe normalement, par exemple avance r tout droit, et d’autre part des conditions qui définissent des interruptions , par exemple le fait qu’un détecteur signale un obstacle, et des instructions à exécuter en cas d’interruption, par exemple faire tourner le robot. Ces différentes instruc- tions sont ensuite traduites automatiquement en un pro- gramme qui, de manière répé tée, interroge les capteurs et, selon qu’une interruption est déclenchée ou non, exé- cute une instruction ou une autre. Cette manière réactive de programmer, permet de mieux prendre en compte le s aléas de l’environnement : d’une exécution d’un programme à une autre, un robot rencontre rarement deux fois la même situation et il doit s’adapter s’il rencontre une tache d’huil e sur le sol, des obstacles nouveaux, etc.”

A FAIRE/COMPLETER/REFORMULER

les_exposes/robot_moteur.1425301499.txt.gz · Dernière modification: 02/03/2015 14:04 par haber