Cours:MindstormEvitementObstacle

De troyesGEII
Révision datée du 3 octobre 2018 à 09:51 par Bjacquot (discussion | contributions) (création d'une fonction)
Aller à : navigation, rechercher
Retour à la liste des Tps

Rotation à l'aide du gyroscope

On souhaite que le robot puisse faire des rotations d'un certain angle. Il est intéressant d'utiliser le gyroscope pour parvenir à ce résultat.

Principe

On souhaite tout simplement réaliser un programme qui fait tourner le robot d'un angle de 90°.

L'algorithme sera le suivant :

  • arrêter moteurs
  • attendre 10ms
  • lire gyroscope (valeur entre -180 et 180)
  • calculer l'angle souhaité (position du robot + 90° ... attention si ça dépasse 180°!!!)
  • faire tourner le robot sur lui même (roues en sens opposé)
  • répéter
    • lire gyroscope
    • attendre 2ms
  • tant que angleRobot != angleSouhaité
  • arrêter les moteurs

Question.jpg Ecrire un tel programme

création d'une fonction

Il peut être intéressant de faire tourner notre robot de 90° plusieurs fois dans un même programme.

Au lieu de faire un "copier coller", on va écrire une fonction qu'il suffira d'appeler chaque fois que l'on souhaite :

Exemple :
#include ....

void tourner90()
{
  // copier ici les instructions nécessaires à la rotation à 90°
  ...
}

int main()
{
   ....
   tourner90();
   ....
   do {
      ....
      tourner90();
      ....
   } while (conditionPourContinuer);
   ....
   return 0;
}


Question.jpg Ecrire un programme utilisant cette fonction tourne90 pour que le robot "dessine" un carré

Remarque : Vous pourrez :

  • écrire une fonction ligne droite
  • utiliser une boucle for

Pour les plus avancés :

On peut également faire une fonction plus évoluée dont le prototype serait :

void tourne(int angle)

La fonction doit alors tenir compte du paramètre passé (angle) pour calculer la valeur de l'angle désiré.

Question.jpg Ecrire cette fonction angle et l'utiliser pour "dessiner" un triangle par exemple