Cours:StartMindstormEV3DEV : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
Ligne 55 : Ligne 55 :
  
 
On trouve 3 modes de mesure principaux :
 
On trouve 3 modes de mesure principaux :
{|
+
{|class="wikitable"
 
|-
 
|-
 
| COL-COLOR || retourne un nombre entre 0 et 7 tel que :
 
| COL-COLOR || retourne un nombre entre 0 et 7 tel que :
{|
+
{|class="wikitable"
 
|-
 
|-
 
| 0 ?? || 1 noir || 2 bleu
 
| 0 ?? || 1 noir || 2 bleu
Ligne 97 : Ligne 97 :
 
   return 1;
 
   return 1;
 
}
 
}
 +
</source>
 +
 +
On utilisera ensuite le capteur par exemple de la façon suivante ({{Rouge|à placer dans le main !!}}) :
 +
<source lang=c>
 +
  // début du programme
 +
  if ( initCapteurCouleur()==0 )
 +
  {
 +
      ev3_uninit();
 +
      return(-1);
 +
  }
 +
  int i;
 +
  for (i=0;i<100;i++)
 +
  {
 +
      couleur=sensor_get_value0(capteurCouleur,0);
 +
      if ( (couleur>=NB_COULEUR) || (couleur<0) )
 +
      {
 +
          printf("problème, couleur inconnue !");
 +
      }
 +
      else
 +
      {
 +
          printf("couleur n°:%d : %s\n",couleur,nomCouleur[couleur]);
 +
      }
 +
      Sleep(200);
 +
  }
 +
  // fin du programme
 
</source>
 
</source>

Version du 9 octobre 2017 à 09:59

Infos utiles

librairie brick

Pour commencer, nous utiliserons la librairie simplifiée "brick.h" dont nous allons explorer quelques aspects ici.

Programme minimum

Cette base minimum de programme devra être reprise systématiquement :

#include <stdio.h>
#include "brick.h"
#include <unistd.h>
#define Sleep( msec ) usleep(( msec ) * 1000 )

int main( void )
{
   if ( ev3_init() == -1 )
   {
     printf("\erreur d'initialisation\n");
     return ( 1 );
   }
   printf("initialisation des capteurs ... ");
   ev3_sensor_init();
   printf(" ok !\n");
   printf("initialisation des actionneurs ... ");
   while ( ev3_tacho_init() < 1 ) Sleep( 1000 );
   printf(" ok !\n");

   // début du programme


   // fin du programme
   ev3_uninit();
   printf("*** ( EV3 ) Bye! ***\n" );
   return(0);
}

Pour compiler et exécuter votre programme test.c , il suffit de :

gcc test.c -lev3dev-c -o test
./test

Capteurs

http://slideplayer.com/slide/10944320/

Capteur de couleur

On trouve 3 modes de mesure principaux :

COL-COLOR retourne un nombre entre 0 et 7 tel que :
0 ?? 1 noir 2 bleu
3 vert 4 jaune 5 rouge
6 blanc 7 marron
COL-REFLECT intensité de la lumière réfléchie entre 0 et 100
COL-AMBIENT intensité de la lumière ambiante entre 0 et 100

Il faudra tout d'abord initialiser le capteur et choisir le mode de mesure :

POOL_T capteurCouleur;
 
const char const *nomCouleur[] = { "?", "BLACK", "BLUE", "GREEN", "YELLOW", "RED", "WHITE", "BROWN" };
#define NB_COULEUR  (( int )( sizeof( nomCouleur ) / sizeof( nomCouleur[ 0 ])))
int couleur;
 
int initCapteurCouleur()
{
   capteurCouleur = sensor_search( LEGO_EV3_COLOR );
   if (capteurCouleur)
   {
       color_set_mode_col_color(capteurCouleur);
       //color_set_mode_col_reflect(capteurCouleur);
       //color_set_mode_col_ambient(capteurCouleur);
       printf( "capteur couleur connecté\n");
   }
   else
   {
       printf("vérifier le branchement du capteur couleur !\n");
       return (0);
   }
   return 1;
}

On utilisera ensuite le capteur par exemple de la façon suivante (à placer dans le main !!) :

   // début du programme
   if ( initCapteurCouleur()==0 )
   {
       ev3_uninit();
       return(-1);
   }
   int i;
   for (i=0;i<100;i++)
   {
       couleur=sensor_get_value0(capteurCouleur,0);
       if ( (couleur>=NB_COULEUR) || (couleur<0) )
       {
           printf("problème, couleur inconnue !");
       }
       else
       {
           printf("couleur n°:%d : %s\n",couleur,nomCouleur[couleur]);
       }
       Sleep(200);
   }
   // fin du programme