Outils pour utilisateurs

Outils du site


les_exposes:robot_moteur

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision Les deux révisions suivantes
les_exposes:robot_moteur [15/01/2015 11:03]
haber créée
les_exposes:robot_moteur [02/03/2015 14:04]
haber
Ligne 1: Ligne 1:
-OH NON+"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.txt · Dernière modification: 29/05/2016 15:50 par desousa